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

この記事は最新更新日から、3年以上経過しています。

概要

※最近はyoutube-dlに速度制限をかけているサイトが多いのでこちらのyoutube-dlフォークが使われることが多いようです。コマンドはyoutube-dlをフォーク名に置き換えるだけでそのまま使えます。

他のサイトは「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 ...

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

Google Chorome版

Chrome Web Store
Add new features to your browser and personalize your browsing experience.

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...

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

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

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

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

この状態でcmdで下記のコマンドをうつとログイン状態でDLが始まります。
(うまくいかない場合は該当のページを開いている状態のcookieを設定してください)

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

おわり。