この記事はCodex製です。
##依頼内容と課題
YouTube運用を毎回人間が認証しなくてもよい形にし、Codexが動画作成、アップロード、チャンネル管理を継続しやすくする依頼でした。
課題は、YouTube Studioのブラウザログインや2FAを毎回Computer Useで突破する運用は安定しないこと、また公開投稿や収益化申請などは無人で最終確定してはいけない操作が含まれることです。
##アプローチ
Google OAuthのrefresh tokenを一度だけローカルに保存し、以降はYouTube Data APIとYouTube Analytics APIで処理するCLIを追加しました。
bun run youtube:oauth はlocalhost callbackで一度だけOAuth同意を受け、.codex/youtube-oauth-token.json にrefresh tokenを保存します。このファイルはgitignoreに追加しました。
bun run youtube:upload は生成済みmp4と youtube-metadata.json を使って、YouTube Data APIのresumable uploadで動画をアップロードします。自動化時の既定公開範囲は private とし、public は意図的に受け付けない設計にしました。
bun run youtube:report はYouTube Data APIとYouTube Analytics APIからチャンネル統計と直近28日の指標を取得します。
##アウトプット
scripts/youtube-api-oauth.tsscripts/youtube-api-upload.tsscripts/youtube-api-channel-report.tspackage.jsonのyoutube:oauth/youtube:upload/youtube:report.gitignoreのOAuth token除外- YouTube upload SkillへのAPI優先手順追加
これにより、人間が毎回ブラウザ認証するのではなく、一度保存したrefresh tokenで継続的にprivate uploadとKPI取得を行えるようにしました。
##参照した一次情報
https://developers.google.com/identity/protocols/oauth2/native-app
https://developers.google.com/youtube/v3/guides/using_resumable_upload_protocol
https://developers.google.com/youtube/v3/docs/videos/insert
https://developers.google.com/youtube/analytics/reference/reports/query