「ライブ配信中の動画をダウンロードしたい」
「ストリーミング動画を別ファイルに保存したい」
「Pythonでライブ配信されている動画を処理したい」
このような場合には、Streamlinkがオススメです。
この記事では、Streamlinkについて解説しています。
本記事の内容
- Streamlinkとは?
- Streamlinkのシステム要件
- Streamlinkのインストール
- Streamlinkの動作確認
それでは、上記に沿って解説していきます。
Streamlinkとは?
Streamlinkは、ライブ配信中の動画を扱うことができるPythonライブラリです。
具体的には、次のことができます。
- 動画ファイルとしてダウンロードできる
- 外部プレーヤー(VLCなど)で動画を視聴できる
外部プレーヤーで動画を見るのは、その分だけ負荷が少ないでしょうね。
ブラウザの機能で動画を見るよりは、マシンに与える負荷は減っているはずです。
そして、Streamlinkが対象とする主な動画サイトは以下。
- Twitch.tv
- YouTube.com
- Livestream.com
- Dailymotion.com
これは、ほんの一部に過ぎません。
対象となるサイトは、以下ページですべてを確認できます。
https://streamlink.github.io/plugins.html#plugins
なお、StreamlinkはLivestreamerからフォークしたプロジェクトです。
人気のあったLivestreamerは、現在開発が停止しています。
つまり、StreamlinkはLivestreamerの後継と言えます。
以上、Streamlinkについて説明しました。
次は、Streamlinkのシステム要件を確認します。
Streamlinkのシステム要件
現時点(2022年3月)でのStreamlinkの最新バージョンは、3.2.0となります。
この最新バージョンは、2022年3月6日にリリースされています。
サポートOSに関しては、以下を含むクロスプラットフォーム対応です。
- Windows
- macOS
- Linux
サポート対象となるPythonのバージョンは、以下となっています。
- Python 3.6
- Python 3.7
- Python 3.8
- Python 3.9
- Python 3.10
以下は、Python公式開発サイクルです。
バージョン | リリース日 | サポート期限 |
3.6 | 2016年12月23日 | 2021年12月23日 |
3.7 | 2018年6月27日 | 2023年6月27日 |
3.8 | 2019年10月14日 | 2024年10月 |
3.9 | 2020年10月5日 | 2025年10月 |
3.10 | 2021年10月4日 | 2026年10月 |
Streamlinkは、Python公式開発サイクルをカバーしています。
ただ、Python 3.6はもうサポート対象外でも問題ないのですけどね。
まとめると、Streamlinkのシステム要件はPython 3.6以降であることぐらいです。
つまり、基本的にはStreamlinkはどんな環境でも動くと言えます。
以上、Streamlinkのシステム要件を説明しました。
次は、Streamlinkをインストールします。
Streamlinkのインストール
検証は、次のバージョンのPythonで行います。
$ python -V Python 3.10.2
まずは、現状のインストール済みパッケージを確認しておきます。
$ pip list Package Version ---------- ------- pip 22.0.4 setuptools 60.9.3 wheel 0.36.2
次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。
python -m pip install --upgrade pip setuptools
では、Streamlinkのインストールです。
Streamlinkのインストールは、以下のコマンドとなります。
pip install streamlink
Streamlinkのインストールは、少し時間がかかります。
終了したら、どんなパッケージがインストールされたのかを確認します。
$ pip list Package Version ------------------ --------- certifi 2021.10.8 charset-normalizer 2.0.12 idna 3.3 isodate 0.6.1 lxml 4.8.0 pip 22.0.4 pycountry 22.3.5 pycryptodome 3.14.1 PySocks 1.7.1 requests 2.27.1 setuptools 60.9.3 six 1.16.0 streamlink 3.2.0 urllib3 1.26.8 websocket-client 1.3.1 wheel 0.36.2
そこそこ多いパッケージがインストールされました。
これを見ると、StreamlinkはPython仮想環境にインストールすることをオススメします。
Python仮想環境については、次の記事で説明しています。
以上、Streamlinkのインストールを説明しました。
次は、Streamlinkの動作確認を行います。
Streamlinkの動作確認
Streamlinkの動作確認として、YouTubeのライブ配信をダウンロードしてみましょう。
まずは、対象動画の情報(解像度)を取得します。
例えば、ANNnewsCHのニュースを対象とした場合は次のコマンドとなります。
streamlink https://www.youtube.com/watch?v=sRbzjQTxvPE
上記を実行した結果は、以下。
$ streamlink https://www.youtube.com/watch?v=sRbzjQTxvPE [cli][info] Found matching plugin youtube for URL https://www.youtube.com/watch?v=sRbzjQTxvPE Available streams: 144p (worst), 240p, 360p, 480p, 720p (best)
上記結果より、対象動画の利用可能な解像度が取得できました。
今回は、この中で最も良い解像度で動画をダウンロードします。
また、時間は30秒間を指定します。
streamlink https://www.youtube.com/watch?v=sRbzjQTxvPE 720p -o test.ts --hls-duration 00:00:30
上記を実行すると、test.tsというファイルが作成されます。
VLCプレーヤーがインストール済みなら、test.tsファイルを見ることができます。
ただ、今回はTSファイルが作成まできれば十分です。
ここまで確認できれば、Streamlinkの動作確認としては問題ありません。
以上、Streamlinkの動作確認を説明しました。