Synology(DS120j)でyoutube-dlを使えるようになるまで


前提条件

ssh接続でSynologyにアクセスするすることができる。
エクスプローラーでSynologyのNASに入ることができる。

pipインストールを使うまで

パッケージセンターからPython3をインストールして
SynologyにPython3とPipを導入
こちらのサイトを参考にさせていただき
コマンドライン
sudo curl -k https://bootstrap.pypa.io/get-pip.py | sudo python3

を実行。
私はコマンドライン操作を本格的にしたことがなく

このパスワード入力画面で詰まってしまった。
文字を入力しても反応がないことと、想像していたadminグループのpasswordが間違っていたことが原因でした。
その後adminグループのpasswordを変更し、上の画像のときには文字を打っても反応しないというのを踏まえpasswordを入力

成功。pipが使えるようになった。

pipでyoutube-dlをインストール

pip install youtube-dl

を打ってみると
-sh: pip: command not found
と返されてしまった。
色々調べるとpathが通っていないということだった(そりゃそうだ)
mysql にログインできない
こちらのサイトを参考にさせていただき
コマンドライン
vi /etc/profile

を実行!上のサイトのような画面が出るが文字の付け足し方がわからなかった。
調べていくうちにこれはviコマンドと言うので編集するものらしい。
それではpathを追加しようとしたときNAS上のフォルダの絶対pathがわからないことに気づいた
なんとかエクスプローラーでpipをインストールしたフォルダを見つけることができた。
cdコマンドでその階層まで行きpwdコマンドでpathをゲット!!
そしてviコマンドでキーボードの矢印で行きたいところに行き
export PATH=$PATH:さっきコピーしたパス!
をかきこんで保存しようとしたとき
E45: readonly option is set (add ! to override)
と出てきた。エラーを検索すると読み取り専用にファイルのとき起こるエラーだそうです...対処は
:w !sudo tee %
と打ち込みパスワードを入力することでpathを通すことができました。
これで無事に"pip install youtube-dl"が動作しインストールすることができた!
pathもそのフォルダに通っていた(すみませんわからないです)ので
"youtube-dl URL"を試しに打ってみると動作した!

ffmpegで大づまり

自分は引数で動画のフォーマットを"-f bestvideo[ext=mp4]+bestaudio[ext=m4a]"を使用してDLしていたのだがエラーが起こるようになってしまった。
ERROR: Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument

エラーを検索するとffmpegが最新版ではいなからという結論に至った。
そこで私は自分自身でffmpegをいれていない事に気がついた。
そこでなんの(どこの)ffmpegが動いているか確かめるため”which ffmpeg” を実行すると最初から通っているパスにどうやらffmpegがインストールされていたのだ!
試しにwin10のffmpeg最新版で動画を同じフォーマット("-f bestvideo[ext=mp4]+bestaudio[ext=m4a]")を使ってDLしてみるとしっかりとDLできたためffmpegが原因であることがわかった。
しかし昨日はじめてlinux?を初めて触ったためlinuxのffmpegのインストール方法がわからない.....
調べていくとSynologyのコミュニティパッケージにffmpegの最新版(ほぼ)がアップされていることに気がついた!


-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^
名前:SynoCommunity(なんでもいい?)
場所:http://packages.synocommunity.com/
-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^
と打ち込み左のコミュニティをクリックしffmpegを検索しインストール!!

しかしインストールした後にwhich ffmpegを実行しても場所はかわっていない...pathが通っていないからだ...
しかし先ほどインストールしたffmpegがインストールされた場所が一向にわからない.........
調べていくとfindコマンドというものがありどこにffmpegと書かれた場所があるか探せることを知りました!
cd /
find ./ -name ffmpeg
で一覧を出すことができた!!
先程のffmpegをアンインストールした場合とそれを比較すると

ここにffmpegがありそう!!ということで一番上の"/volume1/@appstore"をpathに追加!
vi /etc/profile
で書き足すときに優先順位に気をつけなければ行けないのには気づくことができました!!

矢印のところにpathを追加!(/volume1/@appstore/ffmpeg/binのようにbinを入れないといけません!(windowsのときにffmpegインストールしたことがあってよかった...))
そしてエラーが起こっていた動画もしっかりとDLすることができました!!!

筆者から

自分はこの記事の部分で6時間ほど消費してしまいました...全く同じ境遇の方にはこのような無駄(?)な時間を過ごしてほしくないと思いこの記事を作成させていただきました。初めての記事なので一行一行がうるさい口調で書いてしまいすみませんでしたm(_ _)m。
次回からは気をつけます...
省略してしまった所も多いので質問していただけたらできる限り手伝いたいと思ってますのでよろしくおねがいします!