【youtube-dl】cookieを使ってログインする

概要

他のサイトは「youtube-dl -u ユーザー名 -p パスワード 対象URL」とかでいけるのに一部のサイトだけログインできない場合、クッキーを使わないとだめなようです。
だいたい下記のようなエラーが出ている時にこまることが多いはず。

[サイト名] Downloading login page
[サイト名] Looking up account info
WARNING: Unable to look up account info: HTTP Error 404: Not Found
[サイト名] 動画ID: Downloading webpage
ERROR: Join this channel to get access to members-only content like this video,
and other exclusive perks.

環境

Windows8.1

内容

下記のイシューをたどっていくとクッキーを使うとうまくいくよと書いてあります。

Login to youtube fails · Issue #11270 · ytdl-org/youtube-dl
Make sure you are using the latest version: run youtube-dl --version and ensure your version is 2016.11.22. If it's not read this FAQ entry and update. Issu...

cookies.txtというエクステンションをブラウザに追加します。
cookie情報をテキストで扱えるようにするためにエクステンションのようです。

Google Chorome版

cookies.txt
Exports your cookies super fast in a format compatible with wget, curl, aria2, and many more.

firefox版

cookies.txt – Get this Extension for 🦊 Firefox (en-US)
Download cookies.txt for Firefox. Exports all cookies to a Netscape HTTP Cookie File, as used by curl, wget, and youtube-dl, among others.

このエクステンションをブラウザに追加するとクッキーっぽいアイコンが現れます。
この状態でブラウザでログインしたいサイトのURLへ移動しログインします。

ログインしてからアイコンをクリックするとこんなかんじでポップアップテキストができるので、これをコピーしてテキストファイルに貼り付けます。

(実際の文字列はもっと長いのですべてコピーしましょう)

一応、エンコードはUTF-8Nで「cookies.txt」と名前をつけて保存しました。(shift-jisでいけるのかは試してません)
このテキストをyoutube-dl.exeと同じ場所に置きます。

この状態でcmdで下記のコマンドをうつとログイン状態でDLが始まります。

youtube-dl.exe --cookies cookies.txt 対象URL

余談ですが、下記のようにうつとファイル名を【yyyyMMdd-タイトル-id.拡張子】で保存してくれるのでちょっと便利です。

youtube-dl.exe --cookies cookies.txt  -o %(upload_date)s-%(title)s-%(id)s.%(ext)s 対象URL

おわり。