音楽と動画の再生とダウンロード その2-スクリプト | st2400のブログ

st2400のブログ

ブログの説明を入力します。

音楽と動画の再生とダウンロード その2-スクリプト

概説で述べた方法で、すでに再生とダウンロードを試された方
もいると思います。 簡単な操作ですが、そのたびに同じ動作は
効率が悪く、これらを自動化する必要があります。そこでWindows
環境でスクリプトを実行するための環境であるWSH(Windows Script
 Host)を利用します。スクリプトとは「ちょっとした(簡易な)プログ
ラム」のことだと思っておけば良いでしょう。スクリプト言語には
JScriptを使います。XP以降のPCで確実に動作するのが長所で、VBや
C#などの高級言語にみられる、OSやバージョンの違いによる動作時の
エラーなどはありません。作成方法は簡単で、NotePad などで
スクリプトを打ち込み、XXXXX.jsという名前で保存するだけです。
これをダブルクリックすれば、実行されます。

例えば、英国BBCのLIVEをダウンロードしながら、ブラウザではなく
Smplayerで聞くというスクリプトを作成します。前回説明したffmpegを、
youtube-dlと同じフォルダに置いて下さい。今回はHDSではなく、HLSを使います。ffmpegはHLSのダウンロードの王者です。さて、下記のスクリプトをNotePadなどにコピーして、BBC-LIVE-smpl-download.jsとして同じフォルダに保存します。output.aviはダウンロードされたファイルで、やはり同じフォルダに作成されます。

var strUrl = "https://as-hls-ww-live.akamaized.net/pool_7/live/bbc_radio_three/bbc_radio_three.isml/bbc_radio_three-audio%3d48000.norewind.m3u8"
var wsh = new ActiveXObject("WScript.Shell");
var cmdtxt = "ffmpeg.exe -i " + strUrl + " -y -c copy output.avi";
wsh.run("smplayer-exec.js");
WScript.Echo( cmdtxt  );
wsh.run(cmdtxt,1,true);
WScript.Echo(String.fromCharCode(7));

さらにSmplayerを起動するスクリプトをsmplayer-exec.jsとして
保存します。

WScript.Sleep (10000);
var sh = new ActiveXObject( "WScript.Shell" );
var cmdtxt = "\"C:/Program Files/SMPlayer/smplayer.exe\"  \"C:/Users/st2411/Downloads/GyaoFlvDownloadHelper/output.avi\""
sh.Run( cmdtxt );
//  オブジェクトを解放
sh = null;

ここでC:/Program Files/SMPlayer/smplayer.exeと
C:/Users/st2411/Downloads/GyaoFlvDownloadHelper/output.avi
は環境により変わります。smplayer.exeを右クリック-プロパティで
場所をコピーし、\を/に変えます。最後に/smplayer.exeを追加して
下さい。output.aviはダウンロードファイルで、同様ですが、最初は
output.aviは作成されていないので、例えばffmpeg.exeを右クリック-
プロパティで場所をコピーし、\を/に変え、最後に/output.aviを追加
して下さい。

このようにしてBBC-LIVE-smpl-download.jsをダブルクリックすれば、
output.aviにダウンロードしながら、SMPlayerでLIVEを聞けます。
ショートカットをディスクトップに置くと便利です。このoutput.avi
はXMedia Recoderでaacに変換できます。聞いてみて気に入ったものだけaacに変換すればよいでしょう。output.aviは次回には上書きされるので、すぐに編集するか、別のフォルダにコピーします。

最後に、スクリプトの実行環境について説明します。実行環境にはCscript と Wscriptがあり、省略時はWscriptとなっています。Cscript と Wscriptの違いは、メッセージを表示するスクリプトのWscript.Echo ステートメントの出力が、Cscriptではコマンド ウィンドウに表示され、Wscript ではメッセージ ボックスに表示されます。メッセージ ボックスに対しては、Enterキーによる応答が必要で、処理が停止します。これは困るので、 実行環境をCscriptとします。コマンド プロンプト(管理者)で次のように入力します。

 

cscript //H:cscript

 

既定値を Wscript に戻すには、次のコマンドを実行します。

 

wscript //H:wscript

 

******************************************
BBC-LIVE-smpl-download.jsの最初の
var strUrl = "https://as-hls-ww-live.akamaized.net/pool_7/live/bbc_radio_three/bbc_radio_three.isml/bbc_radio_three-audio%3d48000.norewind.m3u8

 

を下記に置き換えるとNHK-FMとなりますので、NHK-LIVE-smpl-download.jsとして利用できます。

var strUrl = "https://netradioakfm-i.akamaihd.net/hls/live/263846/1-fm/1-fm-01.m3u8"