はじめに
X(旧Twitter)の動画付きツイートを手軽にダウンロードできるWebアプリをPythonで作成する方法を解説します。Streamlitを使えば、わずか30行程度のコードでGUI付きのダウンロードツールが作れます。※あくまで技術学習用のサンプルであり、実際の使用時はXの利用規約や著作権に十分注意してください。
必要な環境と準備
今回はStreamlitを利用します。以下の記事を参考にしてください。
必要なパッケージのインストール
pip install streamlit yt-dlp
- streamlit: Webアプリケーションを簡単に作成できるPythonライブラリ
- yt-dlp: YouTubeやXなど様々なプラットフォームから動画をダウンロードできるライブラリ
アプリの作成手順
1. コードの作成
以下のコードをtwitter_url.py
として保存します。
twitter_url.py
import streamlit as st
import yt_dlp
st.title("Twitter(X) 動画ダウンローダー")
url = st.text_input("動画付きツイートのURLを入力してください")
if st.button("ダウンロード"):
if "x.com" not in url:
st.error("有効なTwitter(X)のURLを入力してください")
else:
ydl_opts = {
'outtmpl': '%(title)s.%(ext)s', # ファイル名の形式
'format': 'best[ext=mp4]', # 最適なmp4形式を選択
}
try:
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
ydl.download([url])
st.success("ダウンロード成功!同じディレクトリに保存されました。")
except Exception as e:
st.error(f"エラーが発生しました: {e}")
2. アプリの起動方法
streamlit run twitter_url.py
- 表示されたテキストボックスにXの動画付きツイートURLを貼り付け
- 例:
https://x.com/example/status/123456789
- 例:
- 「ダウンロード」ボタンをクリック
- 成功メッセージが表示されたら、同じディレクトリにMP4ファイルが保存されます
注意点と制限事項
法的な注意
- Xの利用規約に違反しないよう注意(商用利用や再配布の禁止など)
- 著作権保護された動画の無断ダウンロードは法律違反の可能性
- あくまで個人利用・技術学習の目的で使用してください
技術的な制限
- 非公開アカウントの動画はダウンロード不可
- 動画が削除されている場合はエラー発生
- 動画の画質は元のツイートに依存
仕組み解説
yt-dlpの設定オプション
ydl_opts = {
'outtmpl': '%(title)s.%(ext)s', # 動画タイトルをファイル名に使用
'format': 'best[ext=mp4]', # 最高品質のmp4形式を選択
}
-
quiet: True
を追加するとコンソール出力を非表示に -
proxy: "アドレス"
でプロキシ経由のダウンロードも可能
Streamlitの特徴
-
st.text_input()
でテキスト入力ボックスを生成 -
st.button()
でクリック可能なボタンを配置 -
st.success()
/st.error()
で結果を分かりやすく表示
応用可能な改良案
- ダウンロードフォルダの指定機能追加
- 画質選択機能の実装
- ダウンロード履歴の保存
- 複数URLの一括ダウンロード機能
- プログレスバーの表示
まとめ
Streamlitとyt-dlpを組み合わせることで、最小限のコードで機能的な動画ダウンロードツールを作成できます。ただし、実際に使用する際は以下の点に注意してください:
- 著作権法やXの利用規約を遵守すること
- ダウンロードした動画の無断共有は行わない
- あくまで技術デモとして活用すること
このサンプルコードをベースに、PythonのWebアプリ開発や動画処理の学習に役立ててください。