YouTube「後で見る」リストをNotionで整理する方法
Notionのデータベースに登録された後でみるリスト
はじめに
こんにちは。nkutanです!
皆さんはYoutubeの後でみる機能使ってますか?私は新しい技術の情報や動向を把握するためにYoutubeをよく使うのですが、気になるものは後でみるリストに追加しています。
動画は見切れず溜まっていく一方で、気づいたら500件を超えるリストとなっていました。
Youtubeのページから一つ一つ整理するのは限界なので、何かいい方法はないかなーと考えていました。
この記事からわかること
この記事では以下のことを紹介します:
- たまりに溜まったYoutubeの後でみるリストを整理する方法
- NotionとPythonを使った自動化の実例
前提条件
記事を読み進める前提です:
- Pythonの環境構築ができていること
- NotionAPIの基本的な知識(詳しくは公式ドキュメントを参照してください)
- Seleniumの基本的な知識
ゴール・全体イメージ
まずは作ったシステムの全体像を見ていきましょう!
ゴール・全体イメージ
システム構成図
システム構成
このシステムは以下の要素で構成されています:
-
Google Takeout
- YouTubeの「後で見る」リストをCSVでダウンロード
-
Notion API
- データベースへの動画情報の登録
- タイトルとリンクを管理
-
Notionのデータベース
- 不要な動画に対してチェックをつける
- 削除済み動画を追跡
-
Selenium WebDriver
- ブラウザを自動操作
- YouTubeの「後で見る」リストから動画を削除
- ブラウザ操作の柔軟性と信頼性を提供
-
Pythonスクリプト
-
get_WL_from_youtube.py
: YouTubeから動画情報を取得しNotionに登録 -
delete_WL_from_youtube.py
: YouTubeの「後で見る」リストから動画を削除
-
準備手順
1. Google TakeoutでCSVをダウンロード
- Google Takeoutを開きます。
- 「YouTubeとYouTube Music」だけを選択します。
- 「すべてのYouTubeデータを含む」設定から「プレイリスト」のみを選択します。
- 指示に従いデータをエクスポートし、CSVを取得します。
2. Notionのデータベースを作成
- 新しいNotionデータベースを作成します。
- 以下のプロパティを追加します:
- Name(タイトル型): 動画のタイトル
- Link(URL型): YouTube動画のURL
- delete(チェックボックス型): 削除対象の動画にチェック
- deleted(チェックボックス型): 削除が完了した動画を追跡
3. 環境変数の設定
- プロジェクトのルートディレクトリに
.env
ファイルを作成します。 - 以下の環境変数を設定します:
NOTION_API_TOKEN="your_notion_api_token" NOTION_DATABASE_ID="your_notion_database_id" CLIENT_SECRET_FILE="client_secret.json" # デフォルト値 CSV_FILE="Watchlater.csv" # デフォルト値
-
NOTION_API_TOKEN
: Notion Integrationから取得したAPIトークン -
NOTION_DATABASE_ID
: NotionデータベースのID -
CLIENT_SECRET_FILE
: Google Cloud ConsoleからダウンロードしたOAuthクライアントIDのJSONファイル名 -
CSV_FILE
: Google Takeoutからダウンロードした後で見るリストのCSVファイル名
-
4. Pythonスクリプトの準備
- Python 3.xをインストールします。
- 必要なライブラリをインストールします:
pip install google-auth-oauthlib google-auth-httplib2 google-api-python-client requests python-dotenv selenium
使い方
Notionに登録する
- Google TakeoutからYouTubeの「後で見る」リストをCSVでダウンロード
-
get_WL_from_youtube.py
: YouTubeから動画情報を取得しNotionに登録python get_WL_from_youtube.py
Notionに登録された動画を削除する
- Notionの画面から不要な動画に
delete
チェックをつける -
delete_WL_from_youtube.py
を実行しYouTubeの「後で見る」リストから動画を削除python delete_WL_from_youtube.py
はまったポイント
元々YouTube Data API v3で直接後で見る動画を取得するつもりだったんですが、実行しても0件となり、調べてみると使えないみたいで、仕方なくGoogle Takeoutを使ってCSVで取得する方式に変更しました。(同じように削除でも使う予定だったんですが、同じく使えず、無理やりSeleniumを使う方式に変更しました。)
参考にした情報:
まとめ
今回はYouTubeの後で見るリストの整理という地味な作業を自動化してみました。APIの制限で初めの想定から大きく方式が変わりましたが、やりたかったことの実現はできたかなと思います!
似たような悩みを持っている方の参考になれば嬉しいです。ぜひ自分の環境に合わせてカスタマイズしてみてください!(もしもっと良い方法をご存知の方がいればメッセージいただきたいです!)
ソースコードは以下で公開しています!
以上です!
<<2024/12/28 追記>>
・表示される動画のページによってはうまく削除できない問題に対応中です。
Discussion