25歳無職です

なんか文句ありますか?(なーい)

Youtubeの視聴履歴を半自動ではてなブログの記事におこす

おこします。

おこしました。

 

GitHub - saba-0013/hatena_youtube_history

 

例えばこう。

jobstatus-is-null.hatenablog.com

今の問題点としては、本当は記事に動画埋め込む形にしたかったのですが、それだと流石に重すぎてブログが壊れてしまう(一回壊してサイト開けなくなった)ので諦めてる。

どうにかしたい。リンク外してサムネの画像だけ貼るのならいけるかな?(サムネの画像ってどこから取ってくるべき?と思うけど、多分それはYoutubeAPIから取れる?)

はあ!

もしやりたい場合はcloneして適当にセットアップしてやってください。

 

 

前置き

Youtubeの視聴履歴、たまに見返すと昔の自分が何にハマっていたかとか分かって面白いですよね。

面白いんです。特に自分はYoutubeってほぼ音楽垂れ流す機械にしか使ってないから、その時の自分がよく聞いてた音楽が何だったか分かって嬉しい(そういえばソレめちゃくちゃ聞いてたな、と思い出すとそれと一緒にその当時起きていた色々の事なども思い出されるため)。

ので、定期的に視聴履歴を記事に起こせたらいいなぁと思った。思ったのでした。無職にはそういう無駄なことをする時間だけはあるから。

しかし、Youtubeの視聴履歴データそれ自体はYoutubeAPI経由で取れないことが分かったため、色々こにゃこにゃしていたのだった。

 

やるべき手順

どうするのか?というと以下。完全に備忘なため細かい話は省く。自分でやれ!

もし視聴履歴見たいだけだったら1やるだけで良いです。

 

0. セットアップ:clone -> 各種アカウント作成とid, key, token取得

基本的に下にある手順の1だけ手で動かしたらあとはmain.py実行するだけで動くのでよいんですが、その前に諸々の準備が必要。

必要なのは以下

  1. Dropboxアカウントの作成、id, key, token取得
  2. hatenaAPI利用のためのAPI_KEY取得

1, 2出来たらcloneしてきたrepoの直下に.envrc作って以下base.py/envsに入ってる各環境変数設定してください。

github.com

1. Dropboxアカウントの作成、id, key, token取得

ない場合は普通にアカウント作って下さい。作れたら、Pythonでファイル読み込んだりなんだりするためのAPIキー取得とかをする。以下に詳しい。

github.com

www.dropbox.com

dropbox-sdk-python.readthedocs.io

app_keyとapp_secretとrefresh_tokenが必要なのですが、デフォルトだとtokenのexpiredがすぐ来ちゃうので永続で取れるやつやった方がいい。

 

2. hatenaAPI利用のためのAPI_KEY取得

はてなブログは持ってる前提。

基本下に全部書いてあるから下見る。

developer.hatena.ne.jp

base.py/Settingsの方はディレクトリ設定と取得期間の話なので適当に変えて下さい。

 

1. Google Takeout経由でYoutubeの視聴履歴データをjson形式でエクスポート

support.google.comsサインインしてみなさい!

takeout.google.com

死ぬほど項目あるんですけど、以下をやる。

  1. 一番上で全選択解除して
  2. 中盤位にある[YouTubeYouTube Music]にチェック入れて
  3. [複数の形式]をクリック > 下の方の[履歴]でHTMLになっているのをJSONに変更
  4. [Youtubeの全てのデータが含まれます]になってるのを[履歴]以外チェック外す
  5. 一番下の[次のステップ]押下遷移後ページで[エクスポート先]を[Dropboxに追加]に変更

以上。

やって、他何もいじらずに最後[アカウントをリンクしてエクスポートを作成]すれば勝手にdropboxにエクスポートされます。

因みにコレ、[エクスポート先]をデフォルトのまま[メアド宛に送ってね]の奴にすればそれだけでデータ送られるので、それ見てニタニタするだけでも別に良いです。

が、僕はそのままデータをはてなブログの記事に落としたかったので、追加の手順を踏む必要があるのですね。大変だなぁ。

 

2. cloneしてきたrepoのままmain.py実行

終わり。

書くの怠いからコードを見て下さい。でも見れるほど綺麗でないのでどうにかします。

何してるかというと、

1. Google Takeout経由でdropboxにアップロードされたYoutube視聴履歴データをローカルにdownload

2. 落としてきたjsonをほぐしてbase.pyで指定した期間のみ抽出、記事用に整形

3. 整形したデータから、はてなの記事に合うようにhtmlを作成、contents.htmlとして出力

4.読み込んだhtmlをはてなAPIに合うようにxmlにフォーマット、記事投稿のpost

5. 201が返って来て終わり

 

 

過去の自分のYoutube視聴履歴が見れると...嬉しい!