Podsync youtube podcast 変換 hosting 自前サーバー

Podsyncとういソフトウェアがあります。

Youtube動画をPodcast形式に変更して配信可能で大変便利です。

Linuxでの運用なので敷居が高いわけですが、便利なので導入しました。

運用方法をメモしておかないと忘れるので。

また、クライアント側、スマホで使っているソフトはAndroidなので、Podcastaddictにしています。

結論1.グローバルIPがブラックリスト入り

一気にリクエストするとyoutubeにブラックリスト登録されてしまうようです。

IPアドレスをブロックされないように、12時間ごと、5つくらいまで。
節度を持って運用します。

podsync自体がもともとwebサービスだったのがyoutube側からブロックされたため、自前で運用しているわけですから。

結論2.youtube-dlのバージョンアップ

youtube-dlのバージョンが古いとファイルのダウンロードができないことがありました。

podsyncはDockerで運用するのですが、バージョンによって動作しないことがあったので、以前のバージョン(v2.0)のyoutube-dlだけをアップデートして移植する必要がありました。

最新latestのDockerイメージを使える環境にすべきかもしれません。

 

今までの経緯

2021-05-25 05:30:21 dockerをいじってyoutube-dlだけを更新。復活。

dockerをいじっていたのでそれなりに慣れてきました。

コンテナ内でコマンド実行する。

docker attach コンテナ名

docker exec -it コンテナ名 /bin/bash

Dockerコマンド(確認編)

docker image ls

テスト環境側

REPOSITORY TAG IMAGE ID CREATED SIZE

mxpv/podsync latest イメージID 7 months ago 107MB

mxpv/podsync v2.2 イメージID 13 months ago 107MB

mxpv/podsync v2.0 イメージID 16 months ago 107MB

hello-world latest イメージID 2 years ago 1.84kB

テスト環境でのlatest が起動しませんでした。

途中でpodsyncが停止してしまいます。

本番環境側

REPOSITORY TAG IMAGE ID CREATED SIZE

mxpv/podsync latest イメージID 16 months ago 107MB

hello-world latest イメージID 2 years ago 1.84kB

つまり、Createdの所で見ると、16 months ago で揃っています。

テスト環境をv2.0で起動した所、正常起動しました。ダウンロードは404で失敗しますが

テスト環境

xpv/podsync:latest が起動しない。と言うか途中で停止する。

mxpv/podsync:v2.0

これなら起動しました。

docker stats

CONTAINER ID NAME CPU % MEM USA

GE / LIMIT MEM % NET I/O BLOCK I/O PIDS

コンテナID bold_lichterman 0.00% 4.285MiB / 1.12GiB 0.37% 15.7kB / 3.68kB 0B / 0B 10

docker exec コンテナID youtube-dl –version

2020.01.24

つまり一年前のyoutube-dl を使っていたわけです。v2.0のイメージでは。

youtube-dl –version

2021.05.16

つまり、Dockerではなく、物理マシン本体では2021年の5月バージョンなのです。

Dockerじゃなくて物理マシンからyoutube-dlをたたくとダウンロードできました。

しかし、lagtestのイメージだとだと途中しています。

Podsyncの最新バージョン確認

現在v2.4.0が最新です。latestを起動してで確認します。(podsyncはとちゅで停止しますが。)

docker exec イメージID youtube-dl –version

2021.05.16

なるほど最新ならバージョンは問題ありません。けど起動してくれません。

よって、Docker自体のアップデートをしてみました。

docker –version

Docker version 19.03.8, build afacb8b7f0

以下、いくつか参考にしたところです。

Dockerのバージョンアップ

sudo apt-get upgrade docker-engine

Dockerアップグレード

Ubuntu 18.04 LTS Docker をインストールする

 

コマンド実行

apt-get install docker-ce docker-ce-cli containerd.io

(データベースを読み込んでいます 現在 1630017 個のファイルとディレクトリがインストールされています。)

・・・・・・・更新完了後、

docker –version

Docker version 20.10.6, build 370c289

最新になったのは間違いないかと。

しかし、この状態でもlatestが起動しませんでした。

V2.1を試すと起動しました、v2.0と同様です。

それ以上のバージョンは起動しませんでした。

podsync binary を使って動かそうとも考えましたが環境に依存しないDockerの方がいいかなと。

一応バイナリで動かそうと調べたところです。

結果、Dockerコンテナの中身を改造。することにしました。

 

v2.0を起動して。

docker stats

CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS

コンテナID silly_dhawan 0.00% 2.961MiB / 1.12GiB 0.26% 509kB / 36.5kB 86MB / 0B 10

docker exec コンテナID youtube-dl –version

2020.01.24

一年以上前のバージョンを使っているようです。

よって、コンテナに対してyoutube-dlのアップデートしようとしました。

docker exec コンテナID youtube-dl –update

docker exec コンテナID pip install -U youtube_dl

OCI runtime exec failed: exec failed: container_linux.go:367: starting container process caused: exec: “pip”: executable file not found in $PATH: unknown

docker exec コンテナID brew install youtube-dl

OCI runtime exec failed: exec failed: container_linux.go:367: starting container process caused: exec: “brew”: executable file not found in $PATH: unknown

まあそうだよね。brewpipも入ってないからね。

 

docker exec コンテナID wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl

Connecting to yt-dl.org (95.143.172.170:443)

Connecting to yt-dl.org (95.143.172.170:443)

wget: bad address ‘github.com’

wgetでもダウンロードできませんでした。

よって、

コンテナにファイルを転送

docker exec -it コンテナID sh

でコンテナの中に入れました。

ホストマシンでyoutube-dl本体をダウンロードします。

wget https://yt-dl.org/downloads/latest/youtube-dl

docker cp [オプション] ローカル・パス|- コンテナ:パス

docker cp ./youtube-dl コンテナID:/home/youtube-dl

homeに転送しました

 

/home # youtube-dl -U

Updating to version 2021.05.16 …

Updated youtube-dl. Restart youtube-dl to use the new version.

/home # youtube-dl –version

2021.05.16

最新バージョンに更新されたので、この状態をコミットで保存します。

docker commit コンテナID mxpv/podsync:v2.0_20210524

参考。今入っているコンテナ

docker exec -it コンテナID sh

 

docker imagesで確認します。

REPOSITORY TAG IMAGE ID CREATED SIZE

mxpv/podsync v2.0_20210524 コンテナID 11 seconds ago 110MB

新しく出来た mxpv/podsync:v2.0_20210524

をつかって起動。

OKダウンロードできたようです。

Dockerイメージを別サーバへ移行します。

つまり本番環境に持っていきます。

docker save mxpv/podsync:v2.0_20210524 > ./tmppodsync.tar

できたtmppodsync.tarをFTPで本番環境にもっていきました。

本番環境。

docker load < tmppodsync.tar

Loaded image: mxpv/podsync:v2.0_20210524

v2.0_20210524

c# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

mxpv/podsync v2.0_20210524 イメージID 2 hours ago 110MB

こちらのイメージを使って本番環境で運用すればOKです。

 

とはいえ、Dockeのlatest最新イメージを起動できるようにすべきかもしれないですが。

 

2021-05-22 06:46:03 404 Not found.原因が分からない。
/* 

time="2021-05-21T20:13:20Z" level=error msg="youtube-dl error:  xxxxxxxx: Downloading webpage
\n xxxxx: Downloading video info webpage
\nWARNING: unable to download video info webpage: HTTP Error 404: Not Found
\nWARNING: unable to download video info webpage: HTTP Error 404: Not Found
\nWARNING: unable to download video info webpage: HTTP Error 404: Not Found
\nWARNING: unable to download video info webpage: HTTP Error 404: Not Found
\nERROR: xxxxx: YouTube said: Unable to extract video data
\n" episode_id=xxxxx error="failed to execute youtube-dl: exit status 1" index=0
time="2021-05-21T20:13:20Z" level=error msg="failed to get episode file size" episode_id=xxxx error="stat /xxxxxxxx: no such file or directory" index=0

 */

グローバルIPを変更してみてもダメ。

CE
xxx.xxx.xx.164

C1
xxx.xxx.xx.126

C2
xxx.xxx.xx.55

APIキーを変更してもダメ。メッセージは同じと言う状況です。

 

原因は今のところ不明なので、時間がある時また考えます。

 

2021-05-20 19:45:55 動作状況的に制限がかかっているのは間違いない。

 

色々調べたけれど、 page_size = 5

これを間違えて page_size = 50 にしていた箇所がありました。

これは不味い。5に戻したのと、幾分必要ない分を減らしました。

太平洋時間(PT)の0時にリセットされるらしいです。

つまり日本時間の17時でしょうか。

今の時間はこちらかな。

調べた内容記録。

クォータの使用量
プロセスのkill
pkill

pgrep -fl podsync
1070 sh
1143 sh
1173 docker
3671 podsync

消費クォータ

2021-02-18 21:48 もしかして更新中はサーバーにアクセスできないのかも?

 

いや、そうでもないな。

これはPodsync側の問題かもしれない。

アンドロイド端末再起動して検証

 

2021-02-18 21:44:18 グローバルIP変更でダウンロード可能に

youtube-dl https://www.youtube.com/watch?v=JHuZeAoj2LY -f “bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]”

ERROR: Unable to download webpage: HTTP Error 429: Too Many Requests

https://qiita.com/jun50/items/abf067b382ba819cbbd0
なるほどIPアドレスでブロックされたようです。

つまりルーターの再起動でipアドレスを変えてみます。

現在のグローバルIP
https://www.cman.jp/network/support/go_access.cgi
160.13.194.160

ルーター再起動
変わってないな。

https://note.com/6maru/n/ncb4cf9ad9b55

Macアドレスを変える方法があるようだ。

最後の一文字をEからFとかに変更

HUAWEI WiFi WS5200の方で設定したけど、いや、これは無線ルーターだから意味ないかも。

両方再起動して変更確認。

ERROR: JHuZeAoj2LY: YouTube said: Invalid parameters.

だけど表示されるエラー内容が変わりました。

configを節度を持った設定に。要は12時間ごと位に。

ダウンロード成功。
なるほど。無駄なことをやっていたなと。

まあ、brewは何か役に立つこともあるかもしれないけど、ディスク容量は無駄に消費した。

/dev/sda1 71G 58G 9.1G 87% /

また考えるしかないけど。

 

2021-05-20 18:13:36 ルーターのMacアドレス変更画面記録

 

何が原因か分かりませんが再びダウンロード不能になっている気がします。

もしかしてまたIP制限に引っかかったのかもしれないので一応記録しておきます。

youtubeの仕様変更でyoutube-dlが使えなくなったのかもしれないです。

バージョンアップをすればOKなのかも?

 

 

2021-02-18 18:48:42 ffmpegのインストールに入ったようだ。緑色の所の依存関係もインストールするらしい。多いって!!

 

2021-02-18 18:01:28  brew恐ろしくてまかかってます。

 

手間もかかるしディスク容量どうなんだといことで。

ディスク容量。
df -h
/dev/sdb1 71G 57G 11G 85% /

結構容量食っていますね。これ何とかしないとならないな。
しかし元が71GBしかないってのが問題なのかねと。

単にこれで足りると思って割り当ててないだけなんですが。

18:26分、既に一時間以上インストールコマンドが終わらない。

何か不安になって来るけど、放置して見守るしかありません。

トラブル対応に時間をかけるのは嫌ですし、他にしなきゃならんこともなるのにってやつです。

今日解決できなかったら一旦保留になってしまいます。

既に1GBディスク容量を消費したようです。

調べてみると数時間かかることも・・・とあるようなので。

2021-02-18 17:17:51 多分youtube-dlが動いていないと当たりを付けました。

podsyncが最近ダウンロードできないことに気が付きました。
多分youtube-dlが動いていないと当たりを付けました。

sh /opt/lampp/htdocs/personal/podsync/run.sh
みたいに実行したログを見て判断しています。

failed to execute youtube-dl: exit status 1
となっているからです。

youtube-dl –version
2016.02.22

随分と古い気がします。

しかし、コマンドでyoutube-dlでダウンロードできるか試してからでもいい気がしました。

とはいえアップデートしてみています。
https://t-pirori.blogspot.com/2019/12/youtube-dl-Update.html

 

It looks like you installed youtube-dl with a package manager, pip, setup.py or a tarball. Please use that to update.
パッケージマネージャーでインストールしていると。

その方法を調べていると、
http://nekomemo2.site/?eid=1655
他のところで検索してみたら、brewでインストールすると行けるとなっていたので、

brew install youtube-dl ffmpeg

brew 自体は行っていなかったので言われるままにインストール。

https://github.com/Linuxbrew/brew/blob/master/docs/Troubleshooting.md
brew update を2回やるとかあったような。

brew install youtube-dl ffmpeg

インストール中の様子。関連ソフトも含めて自動でやろうとしてくれていると思われます。

を実行中。勝手にパッケージをインストールして、管理してくれるはずと思っています。

あと、.configに自動アップデートを追加しておきました。何故かなかったので。
[downloader]
self_update = true # Optional, auto update youtube-dl every 24 hours
timeout = 15 # Timeout in minutes

あと、brewはソースからmakeしてmake installまでをコマンド一つでやってくれるという便利なやつなんだろうと思っています。

Homebrewとは?インストール方法や使い方をわかりやすく説明します