yt-dlpでダウンロードしたYouTube動画を視聴履歴に

yt-dlpで動画をダウンロードすると既定値では視聴履歴に残りません．視聴履歴を残すようにしてみました．

yt-dlp -h を見ると以下のあたりで実現できそうです．

--cookies FILE Netscape formatted file to read cookies
from and dump cookie jar in
--no-cookies Do not read/dump cookies from/to file
(default)
--cookies-from-browser BROWSER[+KEYRING][:PROFILE]
The name of the browser and (optionally)
the name/path of the profile to load
cookies from, separated by a ":". Currently
supported browsers are: brave, chrome,
chromium, edge, firefox, opera, safari,
vivaldi. By default, the most recently
accessed profile is used. The keyring used
for decrypting Chromium cookies on Linux
can be (optionally) specified after the
browser name separated by a "+". Currently
supported keyrings are: basictext,
gnomekeyring, kwallet
--no-cookies-from-browser Do not load cookies from browser (default)

YouTubeにログイン済のブラウザのcookie情報を利用

--cookies-from-browser を利用してYouTubeにログイン済のウェブブラウザのcookie情報からYouTubeに閲覧情報を残します．ローカルPCで使う場合に便利です．

対応ウェブブラウザは，brave, chrome, chromium, edge, firefox, opera, safari, vivaldi となっています．
複数プロファイルを利用している場合でも引数で指定可能です．
今回はFirefoxでYouTubeというプロファイルで試します．

Note

$ firefox --ProfileManager (1)
$ firefox -P YouTube (2)
$ firefox --profile ~/.mozilla/firefox/$( grep YouTube ~/.mozilla/firefox/installs.ini | cut -f2 -d= )/ (3)

プロファイルの確認のためにプロファイルマネージャの起動

YouTube というプロファイルで起動

Youtube の含まれているプロファイル名で起動

$ yt-dlp \
--cookies-from-browser firefox:YouTube \ (1)
--playlist-items 1 https://www.youtube.com/c/OSPNjp/videos (2)

firefoxのYouTubeというプロファイルのcookieを利用

適当なYouTube URL

プロファイルが1つしかなかったり，デフォルトの場合はプロファイルを書く必要はありません．

うまくいけばyt-dlp終了後YouTubeの履歴を確認すると該当の動画が履歴に登録されているはずです．

ウェブブラウザからYouTubeのcookieを書き出して利用

--cookies-from-browser は便利ですが，リモートやヘッドレス環境だとGUIが必要になり面倒です．ウェブブラウザから該当ページのcookie をファイルに書き出し，--cookies オプションで利用します．

まず，YouTubeにログインしているウェブブラウザにcookieを書き出すための cookies.txt という拡張機能を導入します．

cookies.txt – Get this Extension for Firefox (en-US)

次にYouTubeのページを開いた状態で，拡張機能のアイコンをクリックして，「Current Site」を選び，cookieをファイルに保存します．

保存したcookieファイルを --cookies オプションに指定して実行します．

$ yt-dlp \
--cookies ./YouTube-cookie.txt (1)
--playlist-items 1 https://www.youtube.com/c/OSPNjp/videos (2)

保存したcookieファイルを指定

適当なYouTube URL

うまくいけばyt-dlp終了後YouTubeの履歴を確認すると該当の動画が履歴に登録されているはずです．

cookieファイルを持っていけば別の端末でも利用可能です．セッションが切れたらcookieファイルは再度作成する必要があると思います．

ユーザ名，パスワードをnetrcファイルに書いて認証(失敗)

netrcファイルにYouTubeのユーザ名，パスワード(2要素認証を有効にしているのでアプリケーションパスワードを生成)を登録してみましたが，この手順だと認証エラーになりうまく行きませんでした．
恐らくreCAPTCHAで引っかかっているのではないかと思います．
お手軽なんですが残念．

環境

$ yt-dlp --version
2022.03.08.1
$ dpkg-query -W firefox-esr ffmpeg
ffmpeg 7:4.3.3-0+deb11u1
firefox-esr 78.15.0esr-1~deb11u1
$ lsb_release -dr
Description: Debian GNU/Linux 11 (bullseye)
Release: 11
$ arch
x86_64