yt-dlp 設定メモ書き youtube-dl win linux ubuntu podsync docker

 

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される。
更にサムネイルをくっつける。
と言う処理を行っていました。

なかなかに手間がかかっているな。

・・・・時間かかりすぎているな。とりあえず中断。強制的に落とします。

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です