Why not login to Qiita and try out its useful features?

We'll deliver articles that match you.

You can read useful information later.

25
23

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 5 years have passed since last update.

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

25
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の動画を再生する

25
23
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

Linked from these articles

Comments

Panta
@Panta

手順の通り実行したのですが
Youtubeの仕様が変わってしまったのか、.m3u8を含むリンクを取得することができませんでした
どうか再度検証していただけないでしょうか?

0
TaigaNatto
@TaigaNatto
(Edited)

@Panta
コメントありがとうございます。
確認しましたが、まだ問題なく取得できるみたいです。

  • 取得したい動画がライセンス動画ではないか
  • Safariを使っているか

の二点を確認してみるといいかもしれません

0
This comment has been deleted for violation of our Terms of Service.
TaigaNatto
@TaigaNatto
0
tktcorporation
@tktcorporation

https://github.com/tktcorporation/youtube_to_m3u8
簡単な感じですが、同じロジックで url が取得できる cli ツールを作ってみました
よろしければ使ってみてください:bow:

1

Let's comment your feelings that are more than good

Being held Article posting campaign

お題は不問!Qiita Tech Festa 2026で記事投稿!

2026-06-01 ~ 2026-07-13

View details
25
23

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Login to continue?

Login or Sign up with social account

Login or Sign up with your email address