Twitterスペースの録音データをダウンロードする方法|一般向け&プログラマー向け

サムネイル画像 Python

この記事では、Twitterスペースの録音アーカイブを音声ファイルとして、誰でもPCやスマホにダウンロードできる方法を紹介します。

昨年2022年6月までは、Twitterスペースの録音アーカイブは1ヶ月で削除される仕様となっていましたが、それ以降仕様が変更になり、期間無制限で保存されるようになったため、ホストの方が公開を続ける限り、半永久的にリスニング再生ができるようになりました。

しかしながら、録音アーカイブをずっと公開してくれる保証もないので、有益なスペースアーカイブをオフラインに保存して取っておきたいという方も多いと思います。

何分私もその一人です。なので、最近Twitterスペースの録音アーカイブを音声ファイルとして、簡単にダウンロードするWebツールを作りました。

今回はその紹介が一般向けとしてメインです。後半では、プログラマの方向けにPythonを使ってコマンド一発でTwitterスペースアーカイブをダウンロードする方法を説明します。

Twitter Space Downloaderでダウンロード

まずダウンロードしたいTwitterスペースへのダイレクトリンクを取得します。

Twitterスペースのダイレクトリンクの取得
Twitter Space DownloadeのURLボックスにTwitterスペースのダイレクトリンクを入力し、実行ボタンを押す様子

上記のサイトにアクセスすると、下部にスペースリンクの入力欄があるので、入奥して右の「実行」ボタンを押します。

そうすると、「Waiting list for download」に項目が追加され、サーバー側でダウンロード処理キューに入るので、順番にダンロード処理が実行されます。

サイトが混み合っている場合には、ダウンロード処理が実行されるまで時間がかかることがあります。このサイトが好評の場合には、サーバーの負荷も考えながら、リソースの配分を増やして、処理速度向上も考えています。

Twitter Space Downloadeでダウンロード処理が終了して、ダウンロードボタンが有効になり、音声ファイルがダウンロードできるようになった様子

サーバー側でダウンロード処理が完了すると、それぞれの項目の右ボタンのテキストが、「In process…」から「Download」に変わります。

本サイトは、ブラウザークッキーを使用して、ダウンロード履歴を保存しているため、処理を待っている間にページを閉じたり、離脱してもリセットされることはありません。しかし、ダウンロード処理が完了してから、24時間経過するとサーバーから、データが削除されるため、履歴はリセットされます。

以上でTwitterスペースのダウンロードができます。ファイル形式は、「m4a」になります。

ここからは、Pythonのライブラリーを使って、コマンドラインから、Twitterスペースをダウンロードする方法を説明します。

Pythonライブラリーの「twspace-dl」を使ってTwitterスペースをダウンロードする

説明すると言っても非常に簡単なので、サラッと紹介します。

使用するライブラリーは、「twspace-dl」というものです。今回私が制作したWebツールでもバックエンドではこちらのライブラリーを使用しています。

こちらのライブラリーは、Windows/Linux/Macに対応しているので、個々の環境に合わせて使用することができます。私はWindowsなのです。環境は、「Python v 3.10」です。

pip install twspace-dl

上記のコマンドで、「twspace-dl」をインストールします。

インストールが終わったら、「ffmpeg」というオープンソースのメディア編集ツールも必要になるので、下記公式サイトからダウンロードして、インストールしておいてください。

インストールが終わったら、環境変数にインストールした「ffmpeg.exe」までのパスを追加して、コマンドラインから「ffmpeg -L」で、バージョン情報が表示されることを確認しておきます。

twspace_dl -i 'space_url' -o 'output_path'

あとは、上記コマンドでTwitterスペースを「m4a」形式の音声ファイルでダウンロードできます。「-o」オプションは、出力パスを指定したい場合に設定してください。「-o」オプションが省略されている場合には、コマンドを実行しているカレントディレクトリーに出力されます。

オプションはまだ色々あるので、参考までに下記に載せておきます。

usage: twspace_dl [-h] [-v] [-s] [-k] [-l] [--input-cookie-file COOKIE_FILE] [--username USERNAME]
                  [--password PASSWORD] [--output-cookie-file OUTPUT_COOKIE_FILE]
                  [-i SPACE_URL | -U USER_URL] [-d DYN_URL] [-f URL] [-M PATH] [-o FORMAT_STR] [-m] [-p]
                  [-u] [--write-url URL_OUTPUT]
twspace_dl: error: unrecognized arguments: --version
yamaz  ~  ♥ 13:38  twspace_dl --help   
usage: twspace_dl [-h] [-v] [-s] [-k] [-l] [--input-cookie-file COOKIE_FILE] [--username USERNAME]
                  [--password PASSWORD] [--output-cookie-file OUTPUT_COOKIE_FILE]
                  [-i SPACE_URL | -U USER_URL] [-d DYN_URL] [-f URL] [-M PATH] [-o FORMAT_STR] [-m] [-p]    
                  [-u] [--write-url URL_OUTPUT]

Script designed to help download twitter spaces

options:
  -h, --help            show this help message and exit
  -v, --verbose
  -s, --skip-download
  -k, --keep-files
  -l, --log             create logfile
  --input-cookie-file COOKIE_FILE

input:
  -i SPACE_URL, --input-url SPACE_URL
  -U USER_URL, --user-url USER_URL
  -d DYN_URL, --from-dynamic-url DYN_URL
                        use the dynamic url for the processes(useful for ended spaces) example:
                        https://prod-fastly-ap-northeast-
                        1.video.pscp.tv/Transcoding/v1/hls/zUUpEgiM0M18jCGxo2eSZs99p49hfyFQr1l4cdze-        
                        Sp4T-DQOMMoZpkbdyetgfwscfvvUkAdeF-I5hPI4bGoYg/non_transcode/ap-
                        northeast-1/periscope-replay-direct-prod-ap-northeast-1-public/audio-
                        space/dynamic_playlist.m3u8?type=live
  -f URL, --from-master-url URL
                        use the master url for the processes(useful for ended spaces) example:
                        https://prod-fastly-ap-northeast-
                        1.video.pscp.tv/Transcoding/v1/hls/YRSsw6_P5xUZHMualK5-
                        ihvePR6o4QmoZVOBGicKvmkL_KB9IQYtxVqm3P_vpZ2HnFkoRfar4_uJOjqC8OCo5A/non_transcode/a  
                        p-northeast-1/periscope-replay-direct-prod-ap-northeast-1-public/audio-
                        space/master_playlist.m3u8
  -M PATH, --input-metadata PATH
                        use a metadata json file instead of input url (useful for very old ended spaces)    

output:
  -o FORMAT_STR, --output FORMAT_STR
  -m, --write-metadata  write the full metadata json to a file
  -p, --write-playlist  write the m3u8 used to download the stream(e.g. if you want to use another
                        downloader)
  -u, --url             display the master url
  --write-url URL_OUTPUT
                        write master url to file

login:
  --username USERNAME
  --password PASSWORD
  --output-cookie-file OUTPUT_COOKIE_FILE

参考ページ

コメント

タイトルとURLをコピーしました