これは、Overcast で聞いたすべてのポッドキャストのオーディオ ファイルをダウンロードできるスクリプトです。
私はポッドキャストをよく聴いており、Overcast を使用しています。時々、昔聞いたポッドキャストを聴きたくなることがありますが、リンクは腐り、ウェブサイトは壊れ、エピソードはオフラインになります。このスクリプトを使用すると、聞いたすべてのエピソードのオーディオ ファイルをダウンロードできるため、ポッドキャスト エピソードのローカル アーカイブが得られます。
ポッドキャストはレコードで聴くとより豊かなサウンドになります。画像クレジット: ウェルカム コレクション。 CCBY。
これは私がしばらく望んでいたものでした (私が大好きだった少なくとも 2 つのポッドキャストがウェブから完全に消えてしまいました) が、どうやって実現するのか全く分かりませんでした。 ATP エピソード 353 のセグメントで、マルコは、これまでに聞いたすべてのエピソードのリストを含むエクスポートについて言及しました。
エピソードの進行状況を保存するデータベース テーブルに、Overcast が何を保存するかをお話しします。これは私にとって断然最大のデータベース テーブルです。インタラクションしたエピソードごとに、現在のタイムスタンプと、エピソードが完了したかどうかが保存されます。 […]
Web サイトのアカウント セクションに移動すると、OPML (私が実装したカスタムの拡張形式) をエクスポートできるため、実際にすべてのデータをエクスポートできます。 […] あなたが完了したエピソード、または Overcast で何らかの形でプレイしたエピソードのリストをお話します。
探してみると、まさに私が望んでいたものでした。そしてすぐに、参照するすべての MP3 をダウンロードするスクリプトが完成しました。
必要なものは次のとおりです。
電子メールとパスワードを備えた Overcast アカウント。これは、Overcast iOS アプリで作成できます。これまでにこれを行ったことがない場合、または電子メール/パスワードを忘れた場合は、その手順をお読みください。
動作する Python 3 インストール。このスクリプトは Python 3.6 以降でのみ動作します。
手順:
Overcast OPML ファイルを取得します。
電子メール アドレスとパスワードを使用して、https://overcast.fm/login で Overcast Web サイトにログインします。
ログインしたら、https://overcast.fm/account に移動します。 「データのエクスポート」で「すべてのデータ」をクリックします。これにより、これまでに再生したすべてのポッドキャスト エピソードのリストが含まれる OPML ファイルがダウンロードされます。
Python スクリプトをダウンロードします。
スクリプトdownload_overcast_podcasts.py
をダウンロードし、ディスク上のどこかに保存します。
OPML ファイルへのパスを最初の引数として渡して、スクリプトを実行します。たとえば、OPML ファイルが~/Downloads/overcast.opml.xml
にある場合は、次を実行します。
$ python download_overcast_podcasts.py ~/Downloads/overcast.opml.xml
これにより、 audiofiles
というフォルダーへのオーディオ ファイルのダウンロードが開始されます。別の場所に保存したい場合は、 --download_dir
フラグを渡します。たとえば、ファイルを~/Documents/podcasts
に保存したい場合は、次を実行します。
$ python download_overcast_podcasts.py ~/Downloads/overcast.opml.xml --out_dir ~/Documents/podcasts
聞いたポッドキャストの数に応じて、最初のダウンロードは非常に遅くなり、大量のディスク領域を使用します。 (この記事の執筆時点では、エクスポートには約 1200 のエピソードが含まれており、61 GB を占有しています。) 以降の実行では、スクリプトはまだ保存されていないファイルのみをダウンロードするため、かなり高速になるはずです。
マサチューセッツ工科大学