このページで利用方法を解説していたGyaO MMS URLは、9月末日をもって閉鎖されました。代替のダウンロード方法をお探しの方は、次のページをご覧ください。
手順は4ステップです。簡単なので誰でもできます。Windows環境のみで確認していますが、バッチファイルが実行できる環境なら他のOSでも大丈夫だと思います。
基本的な手順
メモ帳などのテキストエディタを起動する。
1行目にchcp 65001と書く。
2行目以降に、動画をダウンロードするためのコマンド(あとで説明)を貼り付ける。
拡張子を.bat(バッチファイル)に、文字コードをUTF-8にして、動画のフォルダに保存する。
保存したファイルを実行する。
このような流れとなります。コピペでダウンロードできますので、知らないワードがあったとしても大丈夫です。意味を理解する必要はありません。
必要なもの
FFmpegをダウンローダーとして使用します。下からffmpeg.exeをダウンロードして下さい。下のリンク先の、オリジナル版の一般用をダウンロードします。ffmpeg.exeは、動画のフォルダに配置します。
解析サイトを使ってダウンロード
リンクするのは、先方の管理人様の意思にそぐわないようなので、サイトのURLは記載しません。「gyao url 解析」などで検索すると上位にヒットするはずです。
使い方
まず始めに、解析URLの入力欄に、保存したい動画ページのURLを貼り付けます。
下から保存したい動画形式に合った文字列をコピーします。
# mp4形式の動画を保存する場合 ffmpeg -timeout "120000" -user_agent "%UA%" -copyts -i "%PATH%" -codec "copy" -bsf:a "aac_adtstoasc" "%TITLE%.mp4" # ts形式の動画を保存する場合 ffmpeg -timeout "120000" -user_agent "%UA%" -copyts -i "%PATH%" -codec "copy" "%TITLE%.ts"
コピーした文字列をフォーマット指定欄に貼り付けます。貼り付けたら、解析ボタンを押します。他にボタンやチェックボックスがありますが、使用しません。
解析ボタンを押すと、各解像度のダウンロードコマンドが表示されます。BANDWIDTHの数値が大きい方が、画質の高い動画となります。
ダウンロードする解像度のコマンドをコピーしたら、あとは基本的な手順の項の手順に従って下さい。
コマンドを貼り付けるときは、1行に1コマンドずつです。
user.jsを使ってダウンロード (1)(公開停止)
user.jsを使用するためのブラウザ拡張が必要となります。
こちらのuser.jsを使用すると、GYAOの各ページにコマンド取得ボタンが表示されるようになります。ダウンロードしたい解像度のボタンを選択すると、コマンドがコピーされます。コピーされるコマンドは、解析サイトを使ってダウンロードの項と同じです。また、コマンドをストックして、最後にまとめてコピーする機能があるので、ひとつずつコピペする手間を削減できます。
タイトル一覧ページから、配信中の動画をリストアップすることもできます。
user.jsを使ってダウンロード (2)
同じくuser.jsを使用できるブラウザ拡張が必要です。こちらのスクリプトは、動画ページを開くだけで、自動的にダウンロードURLを解析してくれます。GYAOだけでなく、多数のサイトで動作します。
ただし、コピーできるのは解析URLだけなので、そのままではダウンロードすることはできません。オプションを組み合わせて、コマンドを作る必要があります。
解析URL→コマンドに整形するブックマークレット
試しに作ってみました。ブックマークレットを実行するだけでコマンドをコピーできるようにしたかったのですが、セキュリティ上の制約・その他の事情で無理でした。
コード
javascript:(e=>{e.style.position="absolute",e.style.top="0",e.addEventListener("change",()=>{e.value=`ffmpeg -loglevel "error" -timeout "120000" -user_agent "${navigator.userAgent}" -copyts -i "${e.value}" -codec "copy" -bsf:a "aac_adtstoasc" "${document.getElementsByTagName("h1")[0].innerText}.mp4"`,e.select(),document.execCommand("copy"),document.body.removeChild(e)}),document.body.appendChild(e)})(document.createElement("input"));
使い方
ファイル名をh1要素(動画プレイヤー下のタイトル)から取っています。動画ページで実行しないと、変なファイル名になりますのでご注意下さい。
ブックマークレットを実行する
ページ左上に現れる入力欄に解析URLを貼り付ける
エンターキーを押す
コマンドがコピーされる
補足
コード中のバッククオートで囲まれている箇所が、コマンドになります。コマンドを編集したい場合は、そこをイジって下さい。
バッチファイルについて補足
バッチファイルは、右クリックから編集することが可能です。最後の行にpauseと書くと、ダウンロード終了後ウィンドウが閉じません。
FFmpegコマンドの説明
このページで使用したコマンドは何を行っているのか、簡単に説明しておきます。
FFmpegでは、下のようなコマンドが基本形となります。
ffmpeg -i "入力.ts" "出力.ts"
ストリーミング動画を保存する場合は、次のような形になります。
ffmpeg -i "解析URL" -c copy "ストリーミング.ts"
-c copy
は、入力動画の映像と音声を複製するオプションです。現在、主立った動画サイトでは、HTTP Live Streaming (HLS)という技術を使って動画が配信されています。HLSには、メディアファイルをTS形式(mpeg2-ts)にしなくてはならない、という規定があります。そのため、-c copy
を付けて出力動画の拡張子をtsにすれば、理論上は入力動画を複製できます。
ですが、tsファイルはアプリケーション側で扱いにくい形式なので、tsからmp4形式に変換するのが一般的です。そのコマンドは次のような形になります。
ffmpeg -i "解析URL" -codec copy -bsf:a aac_adtstoasc "ストリーミング.mp4"
形式を変換すると劣化するのではないか、と心配になるかも知れません。
HLSには元のファイルにも規定があり、ts(コンテナの)の中にはmp4(コンテナに入れられるコーデックの映像・音声)が入っています。このような変換を上のコマンドで行った場合は、データの先頭にあるファイル情報(ヘッダ)のみが変更されます。映像・音声はそのままなので、劣化するということはありません。
各オプションの簡単な説明
-user-agent ""
は、ブラウザの種類やバージョンを表す文字列です。ブラウザからのアクセスを偽装するために必要となります。-codec copy
は、動画・音声を複製します。-c copy
と書くこともできます。-copyts
は、元動画ファイルのタイムスタンプをコピーするオプション。-bsf:a aac_adtstoasc
は、tsからmp4に変換するときに付けるオプション。…なのですが、今は付けなくてもよしなにやってくれるみたいです。-loglevel "error"
は、プロンプトに表示されるログの設定になります。このオプションを付けると、エラーが起こったときのみログが表示されます。
FFmpegオプションの参考URL:
https://ffmpeg.org/ffmpeg.html#Main-options
https://ffmpeg.org/ffmpeg.html#Generic-options
https://www.ffmpeg.org/ffmpeg-protocols.html#http
https://www.ffmpeg.org/ffmpeg-bitstream-filters.html#aac_005fadtstoasc
10秒戻るボタンをつけることは可能ですか?
返信削除コンソールからコードを実行してみたら動作したので、ボタンを付けるのは可能です。
削除なのですが、視聴中に広告が入った場合など挙動がどうなるのかがわからないですね。
ちょっと試しに実装してみます。
本日、更新しました。
削除10眇戻す・進むボタンを付けていますので試してみてください。
完璧です!ありがとうございました!
削除最近、URL「解析」が急にできなくなって困っていました。
返信削除今夜、解析サイトの説明に「とりあえず仕様変更に対応」とあるのに気づきましたけど、
どうしたら良いのか判らず、念のため検索しましたら、
貴サイトがヒット
貴サイトの解説の通りにコピペしましたら、
久々に成功しました!!
どうもありがとうございました (*- -)(*_ _)ペコリ
追伸
返信削除mp4で出来るとは初めて知りました
当方の小さなブログからアドレスのみでリンクしましたけど
迷惑だったでしょうか??
困っている人が沢山居ると思ったもので……
迷惑ということはないですので、お気遣いなく。
削除このコメントは投稿者によって削除されました。
返信削除このコメントは投稿者によって削除されました。
返信削除