LoginSignup
0
0

More than 1 year has passed since last update.

twitcasting.tv の録画分をバックアップする

Posted at

ffmpeg でバックアップが取れん

執筆時点で大凡半年前位から、普通に index.m3u8 を抜くだけでバックアップが出来んくなりよった。
独自調査の結果ブラウザで index.m3u8 アドレスを発給しよる時間とユーザーエージェント及びリファラーで紐づけされ、アドレス発給から8時間以内に無効となる改変が有ったようじゃ。

work shop

用意する物
ブラウザ:Firefox -> なんでもエエのじゃが「開発ツール」的なプラグインで m3u8 がスニッフィング出来よる事

例えば...
https://twitcasting.tv/*/movie/708959996

この場合、ブラウザを起動しよったら、f12 キーを押してパケット解析出来よる状況にさせてから、url をぶち込む。
01.png
*.m3u8 の url が表示されよるトコにマウス持っていきよって、右クリック→コピー→fetchとしてコピーをクリック。
02.png

クリップボードに伝送されよったデータはこんな感じ
await fetch("https://dl01.twitcasting.tv/tc.vod/v/708959996.0.2-1636474115-1636502915-a59e5041-2a48848310a33fe3/fmp4/index.m3u8", {
    "credentials": "omit",
    "headers": {
        "User-Agent": "Mozilla/5.0 (X11; FreeBSD amd64; rv:87.0) Gecko/20100101 Firefox/87.0",
        "Accept": "*/*",
        "Accept-Language": "ja,en-US;q=0.7,en;q=0.3",
        "Sec-Fetch-Dest": "empty",
        "Sec-Fetch-Mode": "cors",
        "Sec-Fetch-Site": "same-site"
    },
    "referrer": "https://twitcasting.tv/",
    "method": "GET",
    "mode": "cors"
});

必要な情報は揃ったけ、あとは ffmpeg にぶち込むのじゃが、仕様で header が複数行書けんけ、ユーザーエージェントとリファラーが同時に指定出来んけ、バッチファイルをでっち上げよる事で複数行の header が渡せられるんじゃ。

backup.bat
@echo off
setlocal EnableDelayedExpansion
set LF=^


ffmpeg -headers "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.0"!LF!"Referer: https://twitcasting.tv/" -i "https://dl01.twitcasting.tv/tc.vod/v/708959996.0.2-1636471783-1636500583-a59e5041-b30b18da6965929a/fmp4/index.m3u8" -c copy 708959996.mp4
exit

ちなみに、set LF=^ から改行が2行有るのじゃが、これは御呪いじゃけ端折らんコト!
これで、バックアップが出来る筈じゃ👏

index.m3u8 の url 法則(みたいなん)

/tc.vod/v/708959996.0.2-1636471783-1636500583-a59e5041-b30b18da6965929a/fmp4/index.m3u8

セパレータが「-」で
/tc.vod/v/ の次に始まる .0.2 までの数字が、再生ページの url /*/movie/708959996 の数字(IDと思われる)と同一じゃ。
その次の二つがタイムスタンプで unixtime 表記で記述されちょって index.m3u8 取得しよった時間と、その8時間後が記述されよる。

unix上で確認
% env TZ=JST-9 date -jr1636474115
2021年 11月10日 水曜日 01時08分35秒 JST
% env TZ=JST-9 date -jr1636502915
2021年 11月10日 水曜日 09時08分35秒 JST

残りの16進数は内部管理用のハッシュ値と思われる。

0
0
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
0
0