X/Twitterメディア一括ダウンローダー(iPhone/Android 対応)ユーザーガイド
このスクリプトは、X/Twitter上の画像、動画、GIFをワンクリックでダウンロードできるツールです。
ファイルはユーザーIDとポストIDを用いた名前で保存され、複数メディアの場合はPCでは個別に、モバイルでは一括(ZIP形式)でダウンロードされます。(動画については最高画質のものを、画像については原寸大でダウンロードされます。)ダウンロードされるファイルの名前は、コード中のgenerateFilename
関数を編集することで任意に変更できます。名前に使用できる要素はユーザーID、ユーザー名、ポストID、投稿時間です。また、ダウンロード履歴も自動的に保存されます。さらに、オプションでX/Twitterのブックマーク機能を利用することでダウンロード履歴のオンライン同期が可能です。
このページの一番下に実際のダウンロードボタンの画像を添付しています。
最新のブラウザならPC/モバイル問わず使用可能です。
このスクリプトは、次の二つのスクリプトをベースに作成されています。
・Twitter/X (Web 版) のビデオ/写真/GIF をワンクリックでダウンロード。[limbopro](https://greasyfork.org/ja/scripts/478651)
・Twitter Media Downloader(https://greasyfork.org/ja/scripts/423001)
使用方法
Mac/Windows向け
- スクリプトのインストール:
ブラウザにTampermonkeyを追加し、このスクリプトをインストールしてください。
- お使いのブラウザでX/Twitterにアクセスし、対象のツイートを表示します。
- 共有ボタンの横のダウンロードボタンをクリックすると、各メディアが個別に保存されます。
iPhone/iPad向け
- スクリプトのインストール:
App StoreからUserscriptsというアプリ(リンク)を入手して、このスクリプトをSafariにインストールしてください。
- 設定アプリ → アプリ → Safari → ダウンロード にアクセスして、ダウンロードされたメディアが保存される場所を確認してください。標準では「iCloud Drive」の「ダウンロード」フォルダに保存されますが、この保存先は自由に変えることができます。
- SafariでX/Twitterにアクセスし、対象のツイートを表示します。
- 共有ボタンの横のダウンロードボタンをクリックすると、メディアの数に応じた動作が行われます。
・メディアが1つの場合は、そのままの形式でダウンロードされます。
・複数の場合はZIP形式でダウンロードされます。
- ダウンロードしたZIPファイルについては、こちらで用意したショートカットを使うことで簡単に解凍・保存できます。使い方については補足のところを確認してください。
ショートカットを入手する
Android向け
- スクリプトのインストール:
拡張機能が利用できるブラウザ(例:Edge Canary、Firefoxなど)にTampermonkeyを追加し、このスクリプトをインストールしてください。
- スクリプトをインストールしたブラウザでX/Twitterにアクセスし、対象のツイートを表示します。
- 共有ボタンの横ののダウンロードボタンをクリックすると、メディアの数に応じた動作が行われます。
・メディアが1つの場合は、そのままの形式でダウンロードされます。
・複数の場合はZIP形式でダウンロードされます。
- ダウンロードしたZIPファイルについては、標準のファイル管理アプリやサードパーティ製のアプリで解凍できます。
補足
iPhone/iPad用ショートカットの使い方
ZIP形式でダウンロードしたファイルは、こちらで用意したiPhone/iPad用ショートカットを利用することで、簡単に解凍し、各メディアファイルを整理・保存できます。以下の手順をご確認ください。
- こちらのリンクからショートカットを入手し、iPhone/iPadの「ショートカット」アプリに追加します。
- 最初にこのショートカットを実行すると、ダウンロードしたZIPファイルが保存されている場所を選ぶ画面が表示されます。ここでは、iPhone/iPad向けの使用方法の2.で指定されているフォルダーを選んでください。初期設定では、「iCloud Drive」の中の「ダウンロード」フォルダが選ばれています。もし、ZIPファイルがダウンロードされるフォルダを変更した場合、そのフォルダをここで設定してください。
- 次の画面では、解凍したメディアファイルを保存する場所を選択する画面が表示されるので、保存したい場所を選択してください。基本的には、2.で設定した、ダウンロードしたZIPファイルが保存されている場所と同じ場所を選択すればよいです。
- ショートカットが自動的にZIPファイルを解凍し、各メディアファイルを3.で指定したフォルダに保存します。このとき、3.で指定したフォルダにあるファイルと重複したファイルは保存されず、その一覧が表示されます。
- 解凍が終わったZIPファイルを削除するかの確認画面が表示されるので、削除するかどうか選択してください。
次回以降、このショートカットを実行すると、自動でダウンロードしたZIPファイルを解凍して保存されます。
※ ショートカットの設定は、必要に応じてカスタマイズ可能です。詳しい使い方や設定方法は、ショートカット内の説明をご参照ください。
ダウンロードされるファイルの名前の変更方法
ダウンロードされるファイルの名前は、ユーザーID、ユーザー名、ポストID、投稿時間を用いて任意に変更できます。名前を変更するにはコード中のgenerateFilename
関数を編集してください。また、投稿時間の形式は他のものに変更できます。詳しくはdayjsのリファレンスを確認して下さい。下にデフォルトの設定と他の例を示します。
デフォルト:ユーザーIDとポストIDを使用した名前
return `${userId}_${postId}-${mediaTypeLabel}${index}.${ext}`;
例1:ユーザーIDとポストIDと投稿時間を使用した名前(YYYYMMDD_HHmmss 形式)
const formattedPostTime = dayjs(postTime).format('YYYYMMDD_HHmmss');
return `${userId}_${postId}-${formattedPostTime}-${mediaTypeLabel}${index}.${ext}`;
例2:ユーザー名とポストIDと投稿日を使用した名前(YYYYMMDD 形式)
const formattedPostTime = dayjs(postTime).format('YYYYMMDD');
return `${userName}_${postId}-${formattedPostTime}-${mediaTypeLabel}${index}.${ext}`;
ブックマークを利用したダウンロード履歴のオンライン同期について
このスクリプトには、オプションでX/Twitterのブックマーク機能を使ってダウンロード履歴をオンラインで同期する機能があります。
- 有効にする方法: コード内の
enableDownloadHistorykSync
の値を false
から true
に変更してください。 - 動作:
- この機能を有効にすると、メディアをダウンロードしたポストは自動的にあなたのX/Twitterブックマークに追加されます。
- 既にブックマークに追加されているポストは「ダウンロード済み」とみなされ、ボタンには完了マークが表示され、重複ダウンロードを防ぎます。
- これにより、複数のデバイス(PC、スマートフォンなど)や異なるブラウザ間で、ブックマークを通じてダウンロードしたポストの履歴を共有・同期できます。
- デフォルト設定: デフォルト(
false
)では、この機能は無効です。ダウンロード履歴はオンラインでは同期されず、お使いのブラウザのローカルストレージ(IndexedDB)にのみ保存されます。
よくある質問 (FAQ)
Q: ダウンロードボタンが表示されない場合は?
A: ページのリロードやキャッシュのクリア、または最新バージョンのブラウザを利用しているか確認してください。
Q: ZIPファイルの解凍方法が分かりません。
A: iPhone/iPadでは用意されたショートカットやファイル管理アプリで解凍できます。Androidでも標準のファイル管理アプリで解凍できます。
Q: ダウンロード中にエラーが発生した場合は?
A: ネットワーク環境の確認や、X/Twitter側の仕様変更の可能性があります。しばらく時間をおいて再試行してください。
Q: 複数メディアのダウンロードと個別ダウンロードはどちらが優先されますか?
A: メディアが1つの場合はそのまま個別にダウンロードされ、複数の場合はOSに応じて一括(ZIP形式)または個別にダウンロードされます。
Q: iPhoneでコードを編集するにはどうしたらよいですか?
A: サードパーティ製のアプリで編集可能です。例えば、Documentsというアプリ(リンク)を使用して編集できます。
Q: ダウンロード履歴を消去するにはどうしたらよいですか?
A: ブラウザの開発者ツールを使用してIndexedDBのDownloadHistoryDBを削除してください。それができないモバイルブラウザなどの場合は、ブラウザの設定からサイトデータの削除を行ってください。
Q: 不具合や質問がある場合はどうしたらよいですか?
A: このページのフィードバックのところから報告をお願いします。
ライセンス
このスクリプトはMITライセンスのもとで公開されています。
詳細はMITライセンスをご確認ください。
© 2025 Azuki. All rights reserved.