LoginSignup
11
9

More than 5 years have passed since last update.

Youtube-Watch-History-Scraperを使って、YouTubeの全閲覧履歴(2年分)を出力してみた。

Last updated at Posted at 2018-05-27

iTunesとかに再生回数っていう機能ありますよね?
僕は音楽をよく聞くので、この項目を見て「この曲100回くらい聞いてるのか〜」とか考えるのが好きなんです。
でも最近はapple musicとかよりよっぽどyoutubeで音楽を聞く回数が多いので、見た回数(≒再生回数)でランキングを作成したいなと。
ということで、とりあえず下記の記事を参考にして、youtubeの全閲覧履歴を出力してみました。

参考資料

環境

  • mac OS (High Sierra)
  • google chrome
  • pyenv 1.2.4
  • python 3.6.5

手順

Youtube-Watch-History-Scraperのダウンロード

下記リポジトリをクローンする。(もしくはzipファイルでダウンロードし、解凍する。)
https://github.com/zvodd/Youtube-Watch-History-Scraper

EditThisCookieをダウンロード

下記サイト(chrome store)から拡張機能をダウンロードする。
https://chrome.google.com/webstore/detail/editthiscookie/fngmhnnpilhplaeedifhccceomclgfbg

YouTubeのCookieを保存する。

YouTubeのトップページに行き、拡張機能のアイコンをクリック。
Monosnap 2018-05-27 20-49-38.jpg

エクスポートボタンをクリックし、クリップボードにCookieを保存する。
Monosnap 2018-05-27 20-47-38.jpg

テキストエディタを開いてペーストし、youtube_cookies.jsonという名前で、./Youtube-Watch-History-Scraperのディレクトリ直下に保存しておく。

Youtube-Watch-History-Scraper-master 2018-05-27 20-54-53.jpg

これで下準備はおk。

pipで必要なファイルをインストール(以下ターミナルの操作)

  • scrapy(スクレイピング用のpythonフレームワーク)
  • lxml(HTMLを扱うためのライブラリ)
  • sqlalchemy(pythonでsqlを扱うためのライブラリ)

ディレクトリ直下に移動した後、上記3つをpip経由でインストール。

$ cd ./Youtube-Watch-History-Scraper-master
$ pip install scrapy lxml sqlalchemy

いざ実行

$ scrapy crawl yth_spider

実行するとすごい勢いで閲覧履歴がログ出力されていくので、

「うわ、1年前こんな動画見てたなあ...」

など、情緒にふけりながらボーッと見ておく。

処理終了

$ 2018-05-27 14:54:21 [scrapy.core.engine] INFO: Spider closed (finished)

5分くらい放置していたら処理が終わる。

出力結果

Youtube-Watch-History-Scraper-master 2018-05-27 21-03-45.jpg

ディレクトリを見てみるとyoutube_history.dbというファイルが生成されており、そこに保存されています。
カラムは以下の通り。

id vid author_id title description time

これをsqlite等で解析します。

ここで眠くなったため、ひとまずこの記事はこれにて...

11
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
9