X(Twitter)の自分の全投稿をアーカイブする
今回はMMDに関する内容ではなく、先日発表いたしましたX対応のなかで言及した『X公式アーカイブ機能』の利用方法と、発生しうるエラーの修正法をご紹介します。
X公式アーカイブ機能
Xには自分の全投稿をアーカイブとしてダウンロードする機能が備わっています。
ダウンロードしたアーカイブは、HTMLファイルとJSファイルで構成されており、ブラウザでTwitter(Xではなく)を閲覧するように、自分の全投稿を見ることができます。
アーカイブをダウンロードする方法
1. アーカイブをリクエストする
Xの設定から、以下の順にすすみます。
設定とプライバシーを開く
アカウントを選択
データのアーカイブをダウンロード
パスワードとメールかSMSによる二段階認証を求められるので、ご希望の認証方法を選択してください。
認証が完了すると、『アーカイブをリクエスト』するボタンが表示されているので、クリックします。
2. アーカイブをダウンロードする
アーカイブはリクエストして即座にダウンロードできるわけではなく、データの準備が整うと、通知欄にお知らせがきます。
私は30600件ほどのツイートと画像で計4GBほどのデータでしたが、およそ24時間後に通知がきました。
通知が来たら、リクエストと同じ画面にダウンロードボタンが表示されているので、クリックしてダウンロードします。
データサイズによっては、ダウンロードに数時間を要するので、気長に待ちましょう。
3. アーカイブデータを解凍(展開)する
アーカイブデータがダウンロードできたら、zipファイルを解凍(展開)します。
解凍すると、上記のようなファイルとフォルダが入っているので、『Your archive.html』をダブルクリックします。
ブラウザがたちあがり、Twitterのような、というかTwitterですねw
Twitterが開きますw
あとはTwitterを閲覧する感覚で、ツイートや、いいね、モーメントなどを閲覧できます!
いいね(Likes)閲覧中にエラーが発生する場合
いいね欄は他者のツイートなので、仕様上以下のような表示なるようです。
アイコンはデフォルトアイコン
画像は表示されない
これ自体は不具合ではないのですが、スクロールをしてるうちに以下のような表示になる場合があります。
画面上は、もう一度アーカイブをダウンロードするように促されますが、原因は「いいね」したツイートの中に、削除済みの投稿が含まれている場合に発生するので、何度ダウンロードしても同じことが起こります。
このままでは、ほかのいいね投稿もみれないので、修正方法をご紹介します。
1. バックアップを作成
detaフォルダを開く
like.jsというファイルを複製(コピー&ペースト)する
コピーした方のファイルを『_backup_like.js』という名前に変更する
弊講座をご覧いただいている皆様にはおなじみかと思いますが、データは弄ると壊れる可能性があるので、しっかりバックアップを取っておきましょう。
正直、変更するファイル名は何でも構いません。
どちらが『バックアップで、触ってはいけない方』という名前にしておくと安心です。
2. コード修正
コピー元の『like.js』ファイルをテキストエディタで開きます。
必ず、名前変更していない『like.js』を開いてください。
『like.js』を開くと、以下のような形のデータが格納されています。
window.YTD.like.part0 = [
{
"like" : {
"tweetId" : "9999999999999999999",
"fullText" : "ツイート本文テキスト",
"expandedUrl" : "https://twitter.com/i/web/status/9999999999999999999"
}
}
];
この冒頭のwindow.YTD.like.part0はどこか別の場所にコピーしておいてください。
コピーできたら、冒頭『window.YTD.like.part0』を『const likes』に書き換えます。
const likes = [
{
"like" : {
"tweetId" : "9999999999999999999",
"fullText" : "ツイート本文テキスト",
"expandedUrl" : "https://twitter.com/i/web/status/9999999999999999999"
}
}
];
続いて、行末に以下の記述を追加します。
必ず、一番最後に追加してください。
window.YTD.like.part0 = likes.map((post) => {
if (!Object.prototype.hasOwnProperty.call(post.like, "fullText")) {
return {
like: {
tweetId: post.like.tweetId,
fullText: "",
expandedUrl: post.like.tweetId,
},
};
}
return post;
});
全体では以下のようなコードになります。
(実際にはconst likes = []の[と]の間には大量のデータがありますが、省略)
const likes = [
{
"like" : {
"tweetId" : "9999999999999999999",
"fullText" : "ツイート本文テキスト",
"expandedUrl" : "https://twitter.com/i/web/status/9999999999999999999"
}
}
];
window.YTD.like.part0 = likes.filter((post) =>
Object.prototype.hasOwnProperty.call(post.like, "fullText")
);
あとは上書き保存して、完成です。
3. ブラウザリロード
修正したファイルを読み込むために、アーカイブを開いたブラウザタブで、F5(リロード)をしましょう。
いいね欄が再読み込みされて、最後までエラーせずにスクロールできれば、修正は完了です!
この記事が気に入ったらサポートをしてみませんか?