【無料】PythonでX(Twitter)の最新タイムライン等から動画を保存

【無料】PythonでX(Twitter)の最新タイムライン等から動画を保存

 

【悩み】
・Twitterの最新などのタイムラインに表示される動画を保存したい。
・Pythonを使ってタイムラインの動画を簡単かつ無料で保存できない?
・TwitterのAPIを使えば良い?お金はかかるのだろうか?



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

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



本記事に掲載した手順を実践したことで、Twitter APIに課金することなくPythonを使い「話題を検索の最新などのタイムライン」に表示された動画を抽出し、ファイルへ保存できるようになりました(下の動画参照)。
 

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のタイムラインから動画を保存するとは、「話題を検索」の「最新」などのタイムライン(timelineまたはTL)上に表示された動画をダウンロードして、自身のパソコンなどのデバイスに保存することを指します(下図参照)。
 

Twitterのタイムラインから動画を保存する例



ちなみに、Twitterにおけるタイムラインの代表的な種類として、以下があります。
 

日本語名称英語名称
最新latest
話題のツイートtop
メディアmedia
ポストposts
返信replies
ハイライトhighlights
いいねlikes
話題を検索explore
タイムラインの種類



タイムラインに表示された動画を手作業で保存する場合、以下の操作を順に実施する必要があります。
 

【タイムラインの動画を保存するための操作手順】
① 各タイムライン上で表示された動画を探す
➁ 表示された動画のURLを特定する
➂ mp4などの拡張子や動画サイズを特定する
④ 動画サイズや拡張子から適切なURLを選択し動画をファイル保存する



Pythonを使うことで、以下の動画のように、「話題を検索」の「最新」のタイムラインに表示された動画を自分自身でTwitterを操作することなく保存できます。
 

Pythonで検索欄のタイムラインに表示された動画をダウンロードする例


 

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

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

場面詳細
重要な情報やニュースの動画特定のニュースや重要な情報がTwitter上で動画として共有されることがあります。それらの動画を保存しておくことで後で参照できるようにすることが役立ちます。
個人的な関心事や趣味に関する動画自分が興味を持っている分野や趣味に関連する動画を自動的に保存しておくことで、情報を整理したり後で再度見返したりすることができます。
教育的なコンテンツ学習や教育目的に役立つ動画を保存しておくことで、知識を増やしたり勉強したりすることができます。



また、タイムラインに表示された動画の保存を自動化することの利点としては、以下が挙げられます。
 

利点詳細
オフラインでの視聴保存した動画はインターネットに接続されていなくても視聴できます。須磨―tフォンの通信データの節約や、インターネット接続が不安定な場所でも動画を見ることができます。
後での参照や共有保存した動画は後で見返したり、友人や家族と共有したりすることができます。特に重要な情報や興味深い動画は後で再度参照することができます。
コレクションとして収集自分の興味や関心に合った動画を保存しておくことで、個人的なコレクションを作ることができます。これによって、特定のトピックや趣味に関する動画を簡単にアクセスできます。
バックアップとしての保持Twitter上の動画は削除される可能性があるため、重要な動画を保存しておくことでバックアップを作成できます。特に個人的な思い出や重要な情報を含む動画は、後で失われる可能性があるため、保存しておくことが有用です。



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


 

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

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

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

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

Twitterの自動化に対するルール
出典:Twitterヘルプセンター


 

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


 

Pythonで最新などのタイムラインの動画を保存する方法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」などを使いタイムラインに表示されたツイートに埋め込まれている動画urlの取得が必要です。

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

項目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(詳しくはこちら



以上が、タイムラインに表示された動画の保存を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)
Basic15分で5回15分で10回15分で60回
Pro15分で75回15分で1500回15分で450回
出典:各APIでのBasicとProの違い(公式サイト)



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

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

無料でタイムラインから動画を保存できるPythonライブラリは存在する?

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

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

ちなみに、以前までは、以下のtweepyを使ったスクリプトを作成し実行することで、無料で検索欄のタイムラインに表示された動画を保存できました。
 

import tweepy
import requests

# 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を使ってTwitter APIに接続
auth = tweepy.OAuth1UserHandler(consumer_key, consumer_secret, access_token, access_token_secret)
api = tweepy.API(auth)

# 検索するキーワード
search_query = 'YOUR_SEARCH_KEYWORD'

# 最新のツイートを取得
tweets = api.search(q=search_query, count=1, tweet_mode='extended', result_type='recent')

# ツイートから動画をダウンロードする関数
def download_video(tweet):
    media = tweet.entities.get('media', [])
    if len(media) > 0 and media[0]['type'] == 'video':
        video_url = media[0]['video_info']['variants'][0]['url']
        video_response = requests.get(video_url)
        if video_response.status_code == 200:
            with open('downloaded_video.mp4', 'wb') as f:
                f.write(video_response.content)
            print('動画をダウンロードしました。')
        else:
            print('動画をダウンロードできませんでした。')

# ツイートがある場合、動画をダウンロードする
if tweets:
    tweet = tweets[0]
    download_video(tweet)
else:
    print('該当するツイートが見つかりませんでした。')


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

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

以上より、APIやスクレイピングなしでタイムラインに表示された動画をPythonから無料で保存したい場合、先ほどご紹介した「方法➁」を採用するしかないです。
 

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


Pythonから「話題を検索」の「最新」のタイムラインに表示された動画を保存するスクリプトの作り方を以下の順番で説明します。

ご紹介させていただく作り方を理解することで、「いいね」のタイムラインなどに表示された動画を保存するスクリプトも作れるようになります。
 

【流れ】
全体像:スクリプトの流れ
手順1:タイムラインからツイート取得する処理を作成
手順2:取得したツイートが動画付きかを確認する処理を作成
手順3:動画付きツイートから動画を保存する処理を作成


 

全体像:スクリプトの流れ

以下の処理を含むPythonスクリプトを実装することで、「話題を検索」の「最新」のタイムラインに表示された動画をダウンロードし、パソコン内のフォルダにファイルとして保存できます。
 

検索欄の最新に表示された動画をダウンロードするスクリプトの流れ

 

手順1:タイムラインからツイート取得する処理を作成

まずは、「話題を検索」の「最新」などのタイムラインからツイート取得する処理を作成しましょう。

処理の作り方に関しては、以下の記事をご覧ください。

>>【裏技】Pythonを使い無料でTwitterのツイートを取得する方法
 

手順2:取得したツイートが動画付きかを確認する処理を作成

続いて、取得したツイートごとに動画が埋め込まれているかを確認する処理を作成しましょう。

処理の作り方に関しては、以下の記事をご覧ください。

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

手順3:動画付きツイートから動画を保存する処理を作成

最後に、動画付きと判定されたツイートから、埋め込まれた動画を保存する処理を作成しましょう。

処理の作り方に関しては、以下の記事をご覧ください。

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

上記記事の中で紹介されているスクリプトに加え、手順1と手順2で作成されたCSVファイルを読み込む処理をご自身で実装する必要があります。



上記の3つの手順を実施することで、以下のようにTwitterの「話題を検索」の「最新」のタイムラインに表示された動画を保存できます(下の動画参照)。
 

Pythonで検索欄のタイムラインに表示された動画をダウンロードする例


  

以上の流れで、PythonからTwitter APIを使わずに、タイムラインに表示された動画の保存を自動化できました。何か困ったことがありましたら、お気軽にお問い合わせください。


 

【まとめ】Pythonから無料でタイムラインから動画の保存は可能!


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

上記で紹介した方法を使うことで、Pythonから無料でTwitterのタイムラインに表示された動画を抽出し保存ができます。

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

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



本ブログでは、「Twitter運用やTwitterのデータ分析に役に立つツール」や「業務の時短化に繋がるIT技術」などを発信しています。定期的に更新していますので、ぜひブックマークをよろしくお願いいたします。

>> IT技術やその学び方を発信しているサイト「駆け出し物語」(本ブログ)
 

コメント

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