0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Python+Streamlitを活用したX(旧Twitter)の動画をダウンロードしよう

Posted at

はじめに

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

ブラウザが自動で開き、以下のような画面が表示されます。
image.png

  1. 表示されたテキストボックスにXの動画付きツイートURLを貼り付け
    • 例: https://x.com/example/status/123456789
  2. 「ダウンロード」ボタンをクリック
  3. 成功メッセージが表示されたら、同じディレクトリに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を組み合わせることで、最小限のコードで機能的な動画ダウンロードツールを作成できます。ただし、実際に使用する際は以下の点に注意してください:

  1. 著作権法やXの利用規約を遵守すること
  2. ダウンロードした動画の無断共有は行わない
  3. あくまで技術デモとして活用すること

このサンプルコードをベースに、PythonのWebアプリ開発や動画処理の学習に役立ててください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?