22
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【手動】Youtubeの動画の.m3u8ファイルURLを取得する

Last updated at Posted at 2019-01-19

はじめに

Youtubeのライセンス無し動画のみ取得できます。

kitoko552さんのこちらの記事を参考にしました。
本当にありがとうございます。
YouTube動画のm3u8URLを取得する

.m3u8とは

.m3uとは『マルチメディアプレイリストのファイルフォーマット』である。 ... m3u8は、UTF-8(BOMB無し)で作成する事を明示的にした形式。 根本的にはm3uとm3u8は同じ物。 このファイルに分割されたtsファイルのパスを記述していくことで、複数のファイルを一つのファイルとして再生する事が出来る。

要は動画そのものではなく、動画にアクセスするために必要な情報が含まれているファイルみたいです。
Youtube動画の.m3u8ファイルには解像度ごとのデータも含まれていました。

手動で取得する

ほしいYoutubeのリンクを持ってくる

ライセンス無しの動画を見つけましょう。
とりあえず著作権フリーの動画があったので今回はそれを使います。

欲しい動画のURL
https://www.youtube.com/watch?v=rvkxtVkvawc

URL内の最後のv=の部分が動画IDになります。

動画ID
rvkxtVkvawc

infoファイルを取得する

まず.m3u8ファイル含めて動画の情報が記載されてるinfoファイルを取得します。
infoファイルは以下のリンクで取得できます。

https://www.youtube.com/get_video_info?video_id={videoId}

この{videoId}の部分を欲しい動画の動画IDに書き換えてアクセスします。
このとき、ブラウザによっては必要な情報が入ってないので注意してください。
SafariはいけましたがChromeはダメでした。

https://www.youtube.com/get_video_info?video_id=rvkxtVkvawc

するとこんなテキストファイルがダウンロードされたかと思います。

length_seconds=25&cr=JP&player_response=%7B%22playabilityStatus%22%3A%7B%22status%22%3A%22OK%22%2C%22playableInEmbed%22%3Atrue%7D%2C%22streamingData%22%3A%7B%22expiresInSeconds%22%3A%2221540%22%2C%22formats%22%3A%5B%7B%22itag%22%3A17%2C%22url%22%3A%22https%3A%2F%2Fr3---sn-nvoxu-ioqe7.googlevideo.com%2Fvideoplayback%3Fmv%3Dm%5Cu0026mt%3D1547889191%5Cu0026ms%3Dau%252Crdu%5Cu0026signature%3D86F9BEA143E241DB3AF5F7CDBEAAF7362632A37D.D8925F7E22B2F281598EE57BBB3DA284954ACC7B%5Cu0026mn%3Dsn-nvoxu-ioqe7%252Csn-oguesnze%5Cu0026mm%3D31%252C29%5Cu0026c%3DWEB%5Cu0026fvip%3D3%5Cu0026expire%3D1547910870%5Cu0026key%3Dyt6%5Cu0026mime%3Dvideo%252F3gpp%5Cu0026ipbits%3D0%5Cu0026lmt%3D1542168296623039%5Cu0026itag%3D17%5Cu0026dur%3D25.123%5Cu0026pl%3D27%5Cu0026initcwndbps%3D1838750%5Cu0026source%3Dyoutube%5Cu0026requiressl%3Dyes%5Cu0026gir%3Dyes%5Cu0026txp%3D5431432%5Cu0026id%3Do-
...

この中から.m3u8で終わってhttps%3A%2F%2Fmanifest.googlevideo.comで始まる部分を抜き取ります。
正規表現: https%3A%2F%2Fmanifest.googlevideo.com.+\.m3u8

https%3A%2F%2Fmanifest.googlevideo.com%2Fapi%2Fmanifest%2Fhls_variant%2Fdover%2F11%2Fmv%2Fm%2Fmt%2F1547889191%2Fms%2Fau%252Crdu%2Fsignature%2F2844BAE6D0C4EB720447365A65CCE859CBB08A97.23AE1BFBF229BD768AD8C97BA6029A7790E3E19F%2Fmn%2Fsn-nvoxu-ioqe7%252Csn-oguesnze%2Fmm%2F31%252C29%2Ffvip%2F3%2Fhfr%2F1%2Fexpire%2F1547910870%2Ftts_caps%2F1%2Fkey%2Fyt6%2Fipbits%2F0%2Fhls_chunk_host%2Fr3---sn-nvoxu-ioqe7.googlevideo.com%2Fitag%2F0%2Fpl%2F27%2Finitcwndbps%2F1838750%2Fratebypass%2Fyes%2Fsource%2Fyoutube%2Frequiressl%2Fyes%2Ftx%2F23728348%2Fplaylist_type%2FDVR%2Fgo%2F1%2Fkeepalive%2Fyes%2Ftxs%2F9474469%252C23724088%252C23728348%252C23728352%2Fid%2Faef931b5592f6b07%2Fip%2F240d%253A1a%253Abb%253A2100%253A29a9%253A68a4%253A734a%253A199f%2Fsparams%2Fei%252Cgo%252Chfr%252Chls_chunk_host%252Cid%252Cinitcwndbps%252Cip%252Cipbits%252Citag%252Cmaudio%252Cmm%252Cmn%252Cms%252Cmv%252Cpl%252Cplaylist_type%252Cratebypass%252Crequiressl%252Csource%252Ctts_caps%252Ctx%252Ctxs%252Cexpire%2Fmaudio%2F1%2Fei%2FdupCXPbzCsj6qQHhi57IDA%2Ffile%2Findex.m3u8

まだ16進数化されてる文字コードが混じってしまっているので、必要なもののみ変換します。
こことか使うと楽です。

%3A -> :
%2F -> /
%25 -> %
%2C -> ,

これが欲しい動画の.m3u8ファイルのURLになります。

詳しく検証していませんが、数時間経つとこのリンクは使えなくなるので再度上記infoファイル取得の処理が必要になります。
なのでこの記事を上げる頃には 上記リンクだと403エラーが出るはずです。

さいごに

次はこのリンクを使って動画読み込んでみます。

->
AndroidでYoutubeの動画を再生する

22
20
5

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
22
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?