つっこんだpytubeの使い方せっかくなので、もう少し詳しいpytubeの使い方を見ていきます。YouTube('https://www.youtube.com/watch?v=ssuiqtreiBg')このように、YouTube()クラスに動画のURLを渡すとYouTubeオブジェクト(ここではyt)ができます。動画のサムネイルのURLが取得できたりします。YouTube('https://www.youtube.com/watch?v=ssuiqtreiBg')print(yt.title)print(yt.thumbnail_url)実行すると、このような結果になります。StreamQueryというオブジェクトになります。これは、その動画に対してどのようなフォーマット形式の動画や音声が用意されているのかの一覧情報です。説明よりも中身を見てみるほうがわかりやすいと思うので、まずは・・・all()でStreamQueryの中身を全部見るall()でStreamQueryの中身を全部見ることができます。データはリストなのでforで出力してみます。(i)ズラっと出てきましたが、この動画にこれだけフォーマットの用意があるよーということです。(DASH)という技術をサポートするためのものだそうです。詳しくないのでアレですが、環境などによってこれらの動画×音声の組み合わせを切り替えて再生できるそうです。download)も用意されています。これは720p以下のものしかないそうです。filterを使うこのリストに対して、いろいろな条件のフィルタをかけることでデータの絞り込みをすることができます。progressive=True).all()この書式でも可ですyt.streams.filter(subtype='mp4').filter(progressive=True).all()リストを並び替えるorder_by()を使うことでリストの並び替えができます。desc()で昇順/降順を指定します。it.リストに、order_byに使う属性を持たないデータが混じってちゃダメ。order_byはできないということです。具体的には、mp4で一番解像度の高いストリームを取得しようと思い、下記のようにしたとします。yt.streams.filter(subtype='mp4').order_by('resolution').desc().first()するとこんなエラーが出ます。'str'subtype='mp4'というフィルタリングだと、音声のみのストリームがリストに入ってきます。すると、このリストに対しては解像度でorder_byができないというわけです。対象をvideo/mp4にするとか、yt.streams.filter(mime_type='video/mp4').order_by('resolution').desc().first()progressiveにしてみるとかyt.streams.filter(progressive=True).order_by('resolution').desc().all()うまいことorder_byができるようにフィルタしないといけません。リストの先頭/最後を指定して取ってくるfirst()last()リストの一番先頭・最後のStreamを取ります。解像度の高い順に並べて、first()を取れば一番解像度の高いデータを指定できます。itagで指定して取ってくるget_by_itag(itag)リストの中からピンポイントでデータを指定したい時に、itagの番号でデータを拾うことができます。対話式のダウンローダーをまとめのサンプルとして置いて、いったんしめます。"))yt.register_on_complete_callback(done)list[target].download()実行すると、動画のURLを入れろと言われます。後ろに他のパラメーターがゴチャゴチャとくっついていても大丈夫みたいです。URLを入れてEnterを押して少しすると、フォーマット一覧が出てきて、欲しい番号を入れろと言われます。先頭の[0]とか[1]の番号を入れます。ここでは0番がよさそうなので、0と入力。ダウンロードが終わるとDoneと出て終了です。※フィルタをかけているので、このサンプルではprogressive形式だけがリストアップされます。他の形式も見たい場合はフィルタの部分をいじってください。追記pytubeがエラーを吐いて使えなくなりました。pytubeが9.0.4にバージョンアップしているようなので、バージョンアップしてみたのですが、またエラー。エラーが変わりました。'pytube.contrib'モジュールの読み込みができていないようです。pytubeのインストールされている場所を見てみると・・・なんと、contribフォルダがありませんwpip経由でインストールすると、このフォルダが入らないようです。作者が入れ忘れたのかな?ここからcontribとその中身を手動で入れたら動きました。https://github.com/nficano/pytubeWindowsのpytubeはこのあたりに入っています。10:12pytubeでYouTubeの動画ダウンローダーを作るTweet広告を非表示にする関連記事2018-02-14pytubeでyoutubeのplaylistダウンロードができた前回で終わりといいつつ、まだやってるpytube。パート3ここ2回ほどpytubeで遊んでいますが、そろそろラスト。読者になる参加グループデザインはてなブログをはじめよう!yotazoさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。