2022-07-12(TUE)Docker名前がを指定するとエラーで起動しないのを対応しないと
docker: Error response from daemon: Conflict. The container name "/podsync_container" is already in use by container "多分以前使ったコンテナ名". You have to remove (or rename) that container to be able to reuse that name.
コンテナ名を指定して削除してから起動すれば良いと思われます。参考
2022-07-11(MON)Ubuntu16にインストール
sudo curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp
sudo chmod a+rx /usr/local/bin/yt-dlp
yt-dlp –version
f’You are using an unsupported version of Python. Only Python versions 3.6 and above are supported by yt-dlp’ # noqa: F541
一々バージョンが古いと言うのは不便なのでUbuntu自体のバージョンを上げるべきなんだけどね。
python -V
Python 2.7.12
ls /usr/bin/ | grep python
と、いや待てよ。ここまでやっておいてだけど、Dockerを使えばいいのではないか??
PodsyncのDockerでは既にyt-dlpとかffmpegとかを使っているのだから。
docker ps
ghcr.io/fqx/podsync-with-yt-dlp:latest
docker container exec -it コンテナID ash
bashではなくash
youtube-dl –version
2022.06.29
という事でyt-dlpではなくyoutube-dl として使えるようになっているようです。実態はyt-dlpでしょう。
このコンテナの中で実行すればいいのではないか?
youtube-dl https://xxxxxxxxxxxxxxx
で、ダウンロード可能でした。
yt-dlp.conf
Firefoxのクッキーの設定を抜きました。まあそうだよね。
-o "/app/data/video_downloadHelper/"
-U
-N 2
--embed-thumbnail
--no-mtime
--console-title
-a ../dlurl.txt
エラー
Postprocessing: file:/Invalid argument
とりあえず、
–embed-thumbnail
を抜いてみました。要はマージする所でエラーになっているようなので。
違ったみたい。ではこれか?
-U
-N 2
でもない。要はオプションのファイルの作り方が間違ってるな。とりあえず保留。
youtube-dl + URL直で指定すれば取りあえずダウンロードできるんだから。
後はDLのパスを指定して、定期的にコンテナ内を使って実行する。
DLリストは適宜追加するように設定しよう。
――――それとは別に、
分かった。文字コード、改行コードが違っていた。
yt-dlp.conf
をUTF-8
LF
にして保存。
win10から持ってきて再利用してたから間違ってしまった。
-o "/app/data/video_downloadHelper/%(title)s.%(ext)s"
-U
-N 2
--embed-thumbnail
--no-mtime
--console-title
-a ../dlurl.txt
正常に完了しました。
docker exec イメージ名 ash /docker内path/youtube-dlが走るスクリプト.sh
Cronで定期的に走らせるように設定。
スクリプトの内容
#!/bin/bash
echo カレントディレクトリに移動
cd `dirname $0`
sleep 3
FILE=../dlurl.txt
if [ ! -s $FILE ]; then
#空の場合の処理
echo "$FILE は0byte、処理なし"
else
# 0byte 以上の処理
ls -l $FILE
echo yt-dpl_youtube-dl実行
youtube-dl
fi
sleep 3
echo yt-dpl完了
sleep 3
echo DL終わったのでdlurl.txt削除
rm ../dlurl.txt
sleep 3
echo addedlist.txtをdlurl.txtにリネーム
mv ../adddlist.txt ../dlurl.txt
sleep 3
echo 空のadddlist.txtを作成
touch ../adddlist.txt
sleep 3
echo adddlist.txtのアクセス権を設定
chmod アクセス権 ../adddlist.txt
sleep 3
echo 完了
2022-06-27(MON)テストダウンロードなど
参考はこちらのGIGAZINEのURLです。
Win環境?Linux環境?
とりあえずWin環境でも使うかもしれないので。
yt-dlp.exe を使ってテストしています。
パスは変更しました。userフォルダだとファイルがいっぱいになってしまうので。yt-dlpフォルダにして、batでパスを変更します。
ダウンロード中は.part になります。ファイル名が。
スクリプトを後で作るとして、起動時にアップデート。
yt-dlp -U
オプションを一応付けておいた方がログイン状態でダウンロード可能。
–cookies-from-browser
yt-dlp –cookies-from-browser firefox URL
ダウンロードファイルリストを使ってダウンロード
yt-dlp -a [リストのファイル名]
ダウンロードパスの指定も必要と思われます。後に作るスクリプトで
yt-dlp -o “Path\%(title)s.%(ext)s”
進行状況を表示。
–console-title
yt-dlp.conf ファイルを使う。
-o "Path\%(title)s.%(ext)s"
-U
-N 2
--embed-thumbnail
--cookies-from-browser firefox
--no-mtime
--console-title
-a ../dlurl.txt
batファイルは以下
yt.dlp.bat
net use x: \\192.168.x.xxx\data
cd /d %~dp0
yt-dlp
pause
net useは外部HDDに保存しているため。Pathが無かったら再接続。
VPN環境での実行を想定するのでIPはローカルでOK.
フォルダ構成
\yt-dlp/win/各ファイル
/yt/dlp/dlurl.txt
複数PCから利用、winとLinuxで共通のdl.txtを使いたいため、dlurl.txtは1つ上のディレクトリとしています。
実行!
うまくDLできている。しかし、再度実行したら既にダウンロードが終わったやつは上書きされるのか?
ダウンロードが終わったリストを削除しないといけないのではないか?
f248.webm
f251.webm
とサムネイルがダウンロードされる。
をマージして、.mkvになる。
webmはDeleteされる。
更にサムネイルをくっつける。
と言う処理を行っていました。
なかなかに手間がかかっているな。
・・・・時間かかりすぎているな。とりあえず中断。強制的に落とします。