【裏技】Pythonを使い無料でX(旧Twitter)の動画を保存する方法

 

【悩み】
・Twitterの動画を保存したいがURLを発見できない。
・Pythonを使ってツイート内の動画を簡単かつ無料で保存できない?
・TwitterのAPIを使えば良い?お金はかかるのだろうか?



こういった「悩み」に答えます。
 

【本記事の内容】
① そもそもTwitterの動画を保存するとは?
➁ PythonでTwitterの動画を保存する方法2選
➂ 無料でPythonを使って動画を保存するたった1つの方法
④ 手順:GUI自動化ツールを使ってPythonスクリプトを自作



本記事に掲載した手順を実践したことで、Twitter APIに課金することなくPythonを使い動画が埋め込まれたツイートから動画を抽出し、ファイルへ保存できるようになりました(下の動画参照)。
 



記事の前半では「PythonでTwitterの動画を保存する方法」と「無料でPythonからTwitterの動画をダウンロードしファイル保存が可能か?に対する調査結果」を解説します。

記事の後半では、「無料でPythonを使って動画が埋め込まれたツイートから動画を保存する方法や具体的なプログラム」を説明します。
  

この記事を読み終えることで、「Twitter APIに課金することなくPythonからTwitterの動画を抽出しpc上に保存できる」状態になります。
 

本ブログでは、Twitter APIなしでPythonから様々なTwitter操作を自動化する方法をご紹介しています。その他の操作自動化を知りたい方は、以下の記事をご覧ください。

>> 【実例8選】APIなしでPythonでのTwitter操作を実現する方法


 

そもそもTwitterの動画を保存するとは?


以下の順番で、Twitter(現X)の動画保存に関してご紹介します。
 

【ご紹介事項】
・実演で理解!Twitterの動画を保存するとは?
・なぜ動画の保存を自動化したい?利用場面や利点は?
・動画をダウンロードしファイル保存する際の注意点


 

実演で理解!Twitterの動画を保存するとは?

X(エックス)、旧Twitterの動画を保存するとは、Twitterのツイート(ポスト)に埋め込まれた動画をダウンロードして、自身のパソコンなどのデバイスに保存することを指します。動画保存することで、Twitter上の特定の動画をオフラインで閲覧できるようになります(下図参照)。
 



ツイートに埋め込まれた動画を手作業で保存する場合、以下の操作を順に実施する必要があります。
 

【動画保存するための操作手順】
① 動画が埋め込まれたツイートを探す
➁ ツイート内に埋め込まれた動画のURLを特定する
➂ mp4などの拡張子や動画サイズを特定する
④ 動画サイズや拡張子から適切なURLを選択し動画をファイル保存する



Pythonを使うことで、以下の動画のように、動画が埋め込まれたツイートから動画を自分自身でTwitterを操作することなく保存できます。
 



本記事では、【動画保存するための操作手順】の➁からPythonを使って自動化する方法を解説します。【動画保存するための操作手順】の①に関しては、以下の記事で解説しています。

>> Pythonを使いX(Twitter)で動画付きツイートかを無料確認
 

なぜ動画の保存を自動化したい?利用場面や利点は?

Twitterの動画保存をPythonを使い自動化することは、以下のように様々な場面で求められています。
 

場面詳細
重要な情報やニュースの保存一部の動画は一時的にしか利用できず、後で見ることができなくなることがあります。重要な情報やニュースを含む動画を保存しておくことで、後で参照したり共有したりできます。
個人的な記録個人的な関心事や思い出がある動画を保存しておきたい場合があります。家族や友人の特別な瞬間やイベント、旅行の記録などがこれに当たります。
教育や研究特定のトピックや学術的な目的のために、Twitter上で共有された動画を参照したり研究に利用したりする必要が生じるかもしれません。



また、動画保存を自動化することの利点としては、以下が挙げられます。
 

利点詳細
時間と手間の削減動画を手動でダウンロードする代わりに、自動化されたプロセスを使うことで、時間と手間を削減できます。特に複数の動画を一括保存する場合や定期的にまとめて保存が必要な場合に便利です。※本記事執筆時点ではツイート内に4つの動画埋め込みが可能
常にアクセス可能動画保存を自動化することによって、重要な動画や情報を常にアクセス可能な状態に保つことができます。保存された動画はオフラインでも視聴できるため、インターネット接続がない場所でも利用できます。
整理と管理自動化ツールを使用すると、保存した動画を自動的に整理したり、特定のフォルダに分類したりすることができます。これによって、保存した動画を簡単に見つけたり管理したりできます。
バックアップと保護自動的に動画を保存することで、データのバックアップと保護を行うことができます。Twitter上のコンテンツは削除される可能性があるため、重要な動画を自動的に保存しておくことは有用です。



PythonでTwitterの動画保存を実現することで様々なメリットを得られます。そのため、本記事でご紹介する方法を把握することは損にはなりません。


 

動画をダウンロードしファイル保存する際の3つの注意点

1つ目の注意点としては、「著作権」です。X(旧Twitter)に掲載されている動画には著作権があります。私的利用の範囲なら動画保存は問題ないですが、他サイトへの転載や二次利用は著作権侵害となります。

>> 著作権に関するポリシー(公式サイト)
 

2つ目の注意点としては、「過度な自動化」です。API以外の方法で過度な自動操作を行った場合、アカウントが一時的にロックされたり凍結されたりする可能性があります(下図参照)。
 

出典:Twitterヘルプセンター



3つ目の注意点としては、非公開アカウント(通称:鍵垢)のツイートに埋め込まれた動画を保存することは、そのアカウントのプライバシー設定によって制限されます。非公開アカウントのツイートに含まれるコンテンツは、アカウントの承認を受けたフォロワーのみが閲覧できるようになっています。

そのため、鍵垢のツイートに埋め込まれた動画を保存するためには、そのアカウントのフォロワーであるか、そのアカウントから承認を得ている必要があります。

 

Twitterの動画保存を自動化することで様々なメリットを得られます。ただし、過度に実施するとアカウント凍結の恐れがあるので注意してください。


 

PythonでTwitterの動画を保存する方法2選


PythonでTwitterのツイートに埋め込まれた動画を保存したい場合、本記事執筆時点では、以下の方法があります。それぞれの方法の概要を簡単にご紹介します。
 

【ご紹介事項】
・方法①:Twitterの有料API(Basic以上)を利用
・方法➁:GUI自動化ライブラリを使ってPythonスクリプトを自作


 

方法①:Twitterの有料API(Basic以上)を利用

Twitterには、「Twitter API」という仕組みがあり、この仕組みを使うことで、簡単にPythonなどのプログラミング言語からTwitterを操作できます。

Twitter APIには以下の4種類があり、Pythonから動画の保存を行いたい場合、BasicやProといった有料プランでのみ提供されている「GET /2/tweets/search/recent」や「GET /2/tweets/:id」などを使い動画urlの取得が必要です。

そのため、本記事執筆時点では、月に$100(約1万円弱)支払わなければ、PythonでTwitterの動画保存を自動化することができないです。
 

項目FreeBasicProEnterprise
料金無料$100/月$5000/月価格相談
できることTwitter API v2を使ったツイート作成や削除のみTwitter API v2の全機能Twitter API v2の全機能Twitter API v2の全機能
出典:Twitter APIについて(公式サイト)


各プランで操作可能な機能や単位時間当たりの制限回数などは、以下の公式サイトで確認できます。詳細を知りたい方は、以下をご覧ください。

>> Twitter API(Free)プランで使える機能と制限回数(公式サイト)

>> Twitter API(Basic)プランで使える機能と制限回数(公式サイト)

>> Twitter API(Pro)プランで使える機能と制限回数(公式サイト)

 

方法➁:GUI自動化ライブラリを使ってPythonスクリプトを自作

Pythonには、chromeなどのWebブラウザを操作できるライブラリがあります。以下のようなライブラリを使うことで、Pythonプログラム内でTwitterの動画保存を自動で行えます。

ちなみに、冒頭でご紹介した動画では、PyAutoGUIを使って無料で動画保存を自動化しています。
 

【GUI自動化ライブラリの一覧】
・PyAutoGUI(詳しくはこちら
・selenium(詳しくはこちら



以上が、Twitterの動画保存をPythonで自動化する方法となります。ご自身にあった方法を選択しましょう。
 

無料でPythonを使って動画を保存するたった1つの方法


以下に関して順番に説明します。結論から言いますと、PythonからTwitterの動画保存を無料で実現したい場合、先ほどご紹介した「方法➁:GUI自動化ライブラリを使ってPythonスクリプトを自作」を採用するしかないです。
 

【ご紹介事項】
・そもそも有料ではダメな理由
・無料で動画を保存できるPythonライブラリは存在する?


 

そもそも有料ではダメな理由

Twitter APIのBasic以上を使うことで、Pythonからツイート内に埋め込まれた動画の保存を実現できます。ただし、月1万円程度の費用が発生します。

また、BasicとProの違いの一つとして、「単位時間あたりに発行できるAPI回数」があります。「APIを発行できる回数」としては、以下の違いがあります。
 

プランいいねしたツイート取得回数
(liked_tweets)
タイムラインの取得回数
(users_param_tweets)
ツイート検索の回数
(tweets_search_recent)
指定ツイートの取得回数
(GET_2_tweets)
Basic15分で5回15分で10回15分で60回15分で15回
Pro15分で75回15分で1500回15分で450回15分で900回
出典:各APIでのBasicとProの違い(公式サイト)



上記の表より、Basicを選択した場合、APIを発行できる回数が極端に少ないため、実用化に障壁があります。また、APIを発行できる回数が多いProを選択した場合、月50万円程度の費用が発生します。

以上より、費用と回数の問題があるため、Twitter APIを使うことを躊躇する方が多いです。
 

無料で動画を保存できるPythonライブラリは存在する?

Twitter APIの有料化が2023年3月に実施されました。さらに、簡単にスクレイピングできないようにjavascriptなどで画面表示を難解化し徹底したスクレイピング対策がされました。

それまでは、Pythonライブラリであるtweepyやbeautifulsoupによるスクレイピングで無料で動画保存ができていました。

ちなみに、以前までは、以下のtweepyを使ったスクリプトを作成し実行することで、無料でツイート内に掲載された動画を保存できました。
 

import tweepy
import wget

# Twitter APIの認証情報を設定(Twitter Developerで取得)
consumer_key = "YOUR_CONSUMER_KEY"
consumer_secret = "YOUR_CONSUMER_SECRET"
access_token = "YOUR_ACCESS_TOKEN"
access_token_secret = "YOUR_ACCESS_TOKEN_SECRET"

# Tweepyを初期化
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)

def download_tweet_video(tweet_url, save_path):
    # ツイートのURLからツイートIDを抽出
    tweet_id = tweet_url.split('/')[-1]

    try:
        # ツイートを取得
        tweet = api.get_status(tweet_id, tweet_mode='extended')
        
        # 動画が含まれているか確認
        if 'media' in tweet.entities:
            for media in tweet.extended_entities['media']:
                if media['type'] == 'video':
                    video_url = media['video_info']['variants'][0]['url']  # 動画のURLを取得
                    # 動画をダウンロードして保存
                    wget.download(video_url, save_path)
                    print("動画をダウンロードしました。保存先:", save_path)
                    return
        else:
            print("指定されたツイートには動画が含まれていません。")

    except tweepy.TweepError as e:
        print("エラーが発生しました:", str(e))

# ツイートのURLと保存先パスを指定してダウンロード実行
tweet_url = 'https://twitter.com/ユーザー名/status/ツイートID'  # ツイートのURLを入力
save_video_path = '保存先のパス/保存ファイル名.mp4'  # 保存先のパスとファイル名を指定
download_tweet_video(tweet_url, save_video_path)


Twitter Developerの登録手順に関しては、以下の記事をご覧ください。

>> 【コピペOK】PythonからTwitterへ自動投稿(ツイート)する手順
 

以上より、APIやスクレイピングなしでツイートに埋め込まれた動画をPythonから無料で保存したい場合、先ほどご紹介した「方法➁」を採用するしかないです。
 

手順:GUI自動化ツールを使ってPythonスクリプトを自作


多くの人に公開することにより、Twitter社によって「方法➁」が禁止され、Pythonから無料で動画保存する方法がなくなってしまう可能性があります。

大変申し訳ありませんが、方法➁の作り方は、本記事では非公開とさせてください。

どうしても作り方を知りたい方は、以下の有料記事のご購入を検討してください。有料記事には、「プログラムの流れ」「必要なツールやライブラリをインストール手順」「具体的なプログラム」を掲載しています。

>> PythonでX(旧Twitter)の動画を無料で保存する方法(Note)
 

上記Noteに掲載したプログラムの実行例は、以下となります。PythonからTwitterを操作でき、ツイートに掲載された動画保存も自動化できています。
 



上記のプログラムの詳細が気になる方は、以下からアクセスしてください。

>> PythonでX(旧Twitter)の動画を無料で保存する方法(Note)
 

 


 

【まとめ】Pythonから無料で動画を取得し保存は可能!


いかがでしたでしょうか?

上記で紹介した方法を使うことで、Pythonから無料でTwitterの動画を抽出し保存ができます。

最後にもう一度内容を確認しましょう。
 

【おさらい】
・Twitter APIを使うとPythonから動画保存ができる!ただし有料…
・Basicプランでは実用化に不向き、かといって、Proプランは高額である…
・GUI自動化ライブラリを使うことでPythonから無料で動画保存が可能!



Pythonから無料でTwitterの動画保存を自動化するスクリプトを知りたい方は、以下にアクセスしてください。累計販売部数に応じて、価格を上げていくつもりなので、はやめのご購入をオススメします。

>> PythonでX(旧Twitter)の動画を無料で保存する方法(Note)
 


 

コメント