msdd’s blog

deep learning勉強中。プログラム関連のこと書きます。

動画、画像などをダウンロードできるコマンド

紹介

f:id:msdd:20200427232142p:plain

You-Getを使うことで、コマンドラインで動画、音声、画像をダウンロード出来るようになります。

サイトurl : https://you-get.org/
github : https://github.com/soimort/you-get
サポートしているサイト一覧 : https://you-get.org/#supported-sites

注意

ffmpegが必要になるときもある。(youtube の1080pより高画質の時など)

使い方

you-getのインストール

インストール方法は、 サイトにoption1からoption6まで書かれている。

anacondaを使いoption1 のpipでインストールして試してみる。

conda create -n you-get python=3.8
pip install you-get

コマンドオプション 

オプションをまとめてみた物です。 もれていたり、間違ってそうなので、ドキュメントを参考に。

 オプション  説明
--info/-i 全てのクオリティやフォーマットなどを表示
--itag ダウンロードするものを選択
--no-merge/-n ダウンロードした動画を結合しない
--output-dir/-o 出力パス
--output-filename/-O ダウンロードファイル名
--http-proxy/-x proxy設定
--player/-p 動画プレイヤーやブラウザで見る (e.g. mpv, vlc, chromium)
--cookies/-c クッキー読み込み
--http-proxy/-x proxy設定
--url/-u ページからダウンロードできるurlのリストを取得する
--json 抽出されたデータの概要をjsonフォーマットで取得する

動画、ダウンロード

youtubeの動画をダウンロードしてみる。

まず、動画には、画質、クオリティ、サイズなど様々なものがはるのでその情報を見る。 先ほどインストールした、you-getコマンドを使う。--infoまたは-iで情報を見ることができる。 youtubeの動画のurl: https://www.youtube.com/watch?v=APdS9YQUWroで試す。

you-get -i 'https://www.youtube.com/watch?v=APdS9YQUWro'

情報が表示される。

site:                YouTube
title:               #StayHome 命を救うために家にいよう
streams:             # Available quality and codecs
    [ DASH ] ____________________________________
    - itag:          248
      container:     webm
      quality:       1920x1080 (1080p)
      size:          11.3 MiB (11846656 bytes)
    # download-with: you-get --itag=248 [URL]

    - itag:          137
      container:     mp4
      quality:       1920x1080 (1080p)
      size:          11.2 MiB (11770543 bytes)
    # download-with: you-get --itag=137 [URL]

    - itag:          399
      container:     mp4
      quality:       1920x1080 (1080p)
      size:          10.6 MiB (11101910 bytes)
    # download-with: you-get --itag=399 [URL]

    - itag:          398
      container:     mp4
      quality:       1280x720 (720p)
      size:          6.4 MiB (6663857 bytes)
    # download-with: you-get --itag=398 [URL]

    - itag:          247
      container:     webm
      quality:       1280x720 (720p)
      size:          5.2 MiB (5411075 bytes)
    # download-with: you-get --itag=247 [URL]

    - itag:          136
      container:     mp4
      quality:       1280x720 (720p)
      size:          4.1 MiB (4279757 bytes)
    # download-with: you-get --itag=136 [URL]

    - itag:          397
      container:     mp4
      quality:       854x480 (480p)
      size:          3.7 MiB (3835289 bytes)
    # download-with: you-get --itag=397 [URL]

    - itag:          244
      container:     webm
      quality:       854x480 (480p)
      size:          3.4 MiB (3541927 bytes)
    # download-with: you-get --itag=244 [URL]

    - itag:          135
      container:     mp4
      quality:       854x480 (480p)
      size:          2.8 MiB (2913568 bytes)
    # download-with: you-get --itag=135 [URL]

    - itag:          396
      container:     mp4
      quality:       640x360 (360p)
      size:          2.5 MiB (2597629 bytes)
    # download-with: you-get --itag=396 [URL]

    - itag:          243
      container:     webm
      quality:       640x360 (360p)
      size:          2.5 MiB (2583145 bytes)
    # download-with: you-get --itag=243 [URL]

    - itag:          134
      container:     mp4
      quality:       640x360 (360p)
      size:          2.2 MiB (2295031 bytes)
    # download-with: you-get --itag=134 [URL]

    - itag:          395
      container:     mp4
      quality:       426x240 (240p)
      size:          1.8 MiB (1878913 bytes)
    # download-with: you-get --itag=395 [URL]

    - itag:          242
      container:     webm
      quality:       426x240 (240p)
      size:          1.7 MiB (1818156 bytes)
    # download-with: you-get --itag=242 [URL]

    - itag:          133
      container:     mp4
      quality:       426x240 (240p)
      size:          1.6 MiB (1710906 bytes)
    # download-with: you-get --itag=133 [URL]

    - itag:          394
      container:     mp4
      quality:       256x144 (144p)
      size:          1.4 MiB (1467705 bytes)
    # download-with: you-get --itag=394 [URL]

    - itag:          160
      container:     mp4
      quality:       256x144 (144p)
      size:          1.4 MiB (1419477 bytes)
    # download-with: you-get --itag=160 [URL]

    - itag:          278
      container:     webm
      quality:       256x144 (144p)
      size:          1.4 MiB (1418621 bytes)
    # download-with: you-get --itag=278 [URL]

    [ DEFAULT ] _________________________________
    - itag:          22
      container:     mp4
      quality:       hd720
      size:          4.1 MiB (4275209 bytes)
    # download-with: you-get --itag=22 [URL]

    - itag:          18
      container:     mp4
      quality:       medium
    # download-with: you-get --itag=18 [URL]

動画をダウンロードするには、上の情報のitagの値を使ってコマンドに--itag=itag値を付けることでダウンロードする。付けないと、デフォルト(DEFAULT)のものが使われる。 クローズドキャプションなどは、SubRip形式の.strでダウンロードされる。

you-get 'https://www.youtube.com/watch?v=APdS9YQUWro'

ダウンロードすると、 タイトル名.ja.strタイトル名.mp4という形式でキャプションファイルと動画がダウンロードされる。

f:id:msdd:20200427232158p:plain

ポーズはctr+Cで、再開は同じコマンドを打つことで出来る。

画像ダウンロード

画像のダウンロードも同様にyou-getに画像urlを付けるだけ。

you-get https://www.python.org/static/community_logos/python-logo-master-v3-TM.png

試験的な機能で、画像サイトから画像を取得するものもある。 しかし、ドキュメントには動作は完璧からはほど遠いとある。 tumblurなどのサイトから画像をダウンロードしてくる

you-get https://javascript.tumblr.com/post/190518523862/hi-there-your-friendly-neighborhood-tumblr-web

f:id:msdd:20200427232207p:plain

その他

ほかにも、ダウンロードではなく、動画を再生したり、単語を指定してgoogle検索で最も関連のある動画をダウンロードしたり出来る。

まとめ

コマンドでyoutubeなどの動画をダウンロードする時に使えるyou-getを試してみた。クオリティを選べ、保存先、名前も変えれるので、一括ダウンロードするスクリプトなども作りやすそう。