Skip to content

Instantly share code, notes, and snippets.

@haxibami
Created April 18, 2022 10:53
Show Gist options
  • Save haxibami/1ad8dcc4a0fc845040cc2b955802f86f to your computer and use it in GitHub Desktop.
Save haxibami/1ad8dcc4a0fc845040cc2b955802f86f to your computer and use it in GitHub Desktop.
GoogleDriveで閲覧できる任意の動画をダウンロードする

Google Drive で閲覧できる任意の動画をダウンロードする

概要

youtube-dl のフォークであるyt-dlpには、ブラウザの Cookie を抽出してアクセスに使用する機能(--cookies-from-browser)が付加されている。これを使うと、Google Drive で自らのアカウントが閲覧できる任意の動画を(設定の如何にかかわらず)ダウンロードできる。この意味するところは各自考えられたし。1

必要なもの

  • yt-dlp
  • Google Chrome(Firefox 等では手順が煩雑になるため省略)2

手順

以下は

  • Arch Linux (64bit)
  • Google Chrome 100.0.4896.127 (Official Build)
  • yt-dlp 2022.04.08

で確認した。

動画 URL 取得

ダウンロードしたい動画の表示用 URL は当然必要(https://drive.google.com/file/d/some-long-string/view または https://drive.google.com/file/d/some-long-string/view?usp=sharing の形式)。

プロファイル探し

抽出したい Cookie を含むプロファイルの名前を取得する。

chrome://version でシステム情報を開き、「プロフィールパス」に表示されたパスを確認する。この末尾、具体的には /path/to/your/profile の場合 profile の部分がプロファイル名として扱われる(らしい)。

ダウンロード

以上の URL とプロファイル名を渡す。

yt-dlp "URL" --cookies-from-browser chrome:プロファイル名3

おそらくうまくいく。ちなみになぜかめちゃくちゃ帯域幅が狭く、50 - 200KB/s くらいしか出ない。不思議。

なお、くれぐれも悪用は厳禁である。

Footnotes

  1. というかこんなものを使わなくても、手の込んだ JS やら DRM やらがない時点で <video> 要素から引っ張り放題ではある。

  2. おそらくプロファイルに紐付いた Google アカウントが一意に定まらないため、複数アカウントを用いている際に権限のない方のアカウントで動画にアクセスしてしまう場合があると思われる。

  3. スペースを含む場合は適宜エスケープする。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment