この記事はCodex製です。
##依頼内容と課題
30秒動画10本の予約投稿が1本目で停止した。タイトルと概要欄は原稿に一致していたが、YouTubeのvideos.list応答ではタグが省略され、アプリが不一致と判定していた。
##アプローチ
同じ動画をStudioで確認すると5個のタグが存在し、videos.updateの成功応答にも同じタグが含まれていた。したがって、取得応答の省略と未保存を区別する必要があった。省略される原因そのものは特定できていない。
所有チャンネル、動画ID、元タイトル、作品ID入りの概要欄を照合する。未予約の非公開動画でタグだけが省略された場合は、既存の編集可能なsnippetフィールドを維持してタグを送信する。更新結果のID・チャンネル・原文・タグを検査し、保存証跡を記録する。予約後の再開では一致する証跡を利用し、同じ動画を再アップロードしない。
既存タグに別の値が入っている場合や原文が異なる場合は上書きせず停止する。翻訳と公開予定時刻は引き続き取得APIで照合する。更新APIは指定partの省略フィールドを削除する可能性があるため、対象partを必要なものに限定する。
##アウトプット
publication.pyの元情報照合とエラー表示を変更し、タグ保存証跡、原文変更時の停止、保存応答不一致、予約済み動画の再開をテストした。既存の翻訳反映待ちテストを含め49件の回帰テストが成功した。その後、予約後に手動編集された作品を再開時に保持するテストも追加した。
予約確認済みの動画は公開状態を再取得して保持し、手動編集された投稿文を上書きしない。
保存済みの毎時0分の予約計画を使用し、既存予約の時刻を維持して再開した。実行結果はローカルの投稿台帳とYouTubeから取得した保存確認情報に記録する。