Re: Webラジオの保存方法の質問はこちら【22】 ( No.25 )
日時: 2016/03/09 15:02
名前: おひげ

>>24

りんりんさん、とりあえずざっくりですがバッチファイル作ってみました。

下準備

 事前にサイトスクリプトblog を一通り読んでおいてください。

 http://blog.livedoor.jp/brsscl/archives/224761.html

 ・RTMPDump.exe , animate.rsite.js , 下記バッチ 3点を適当な作業フォルダに準備します。
 ・animate.tvのクッキー値を取得するブックマークレット をお気に入り(ブックマーク)に登録しておきます。


ダウンロード手順

 1.ブラウザを使用してアニメイトWEBラジオのページへ移動します。
 2.アニメイトWEBラジオが開いたら、登録しておいたブックマークレットを開き、クッキー値を取得しメモ帳などにコピーします。
 3.保存したいラジオのページへ移動し、FLASH再生のボタンを右クリックしてショートカットをコピーして同様にメモ帳などにコピーします。
 4.保存しておいた下記バッチファイルを実行します。
 
  ・スクリプトが実行されたら、ラジオのURLを聞かれるので、3.でコピーしたURLを貼り付けます。
  ・続いてクッキー値を聞かれるので、2.でコピーした文字列を貼り付けます。
  ・バッチファイルが作業し ダウンロード用のコマンドが表示され、download.bat が作成されます。
  ・download.bat を実行すればダウンロードができるはずです。たぶん......

  ・XP環境の場合、>>36 を参考に2か所ほど書き換えが必要です。


-------ここから下をコピペして 適当な名前で保存して拡張子を .bat に変更してください-------(この行は含めないこと)

@echo off

title アニメイトWEBラジオダウンロード用コマンド作成

REM
REM ← の行はコメントです。
REM

REM バッチファイルで使用する環境変数をバッチファイル実行中のみ有効な遅延環境変数として定義する。(endlocal宣言時に開放)

    setlocal enabledelayedexpansion

REM 【実行環境のチェック (環境変数により32bitか64bitの判別を行い、処理を分岐しています)】
REM 【下記判別方法だとWOW64環境でコマンドプロンプトが起動された場合には32bitと判定されてしまい正常に動作しません】
REM 【より正確に分岐させたい場合は、レジストリを読み取って判別を行う方法があります】

    REM 32bit環境のチェック (x86ならば32bit環境実行へジャンプします。)
    REM 【32bit環境の場合通常は通常x86が定義されています。】

    if "%PROCESSOR_ARCHITECTURE%" EQU "x86" (goto 32bit)

    REM 32bit環境以外の処理 (x86以外ならば64bit環境実行へジャンプ)
    REM 【一般的なWindowsマシンの64bitの場合はAMD64、ItaniumやXeonの場合はIA64が定義されています。】

    if "%PROCESSOR_ARCHITECTURE%" NEQ "x86" (goto 64bit)

    REM 上記以外の処理 (チェック失敗なので終了へジャンプ。【この行に来ることはほぼないはずですが念のため記載】)

    echo.
    echo 環境チェックに失敗しました。WindowsXP以降の環境で実行しているか確認してください。
    echo.

    goto end

REM 【サイトスクリプトの実行 (32bit環境)】

:32bit

    REM スクリプト実行

    echo.
    echo 【32bit環境】アニメイトWEBラジオサイトスクリプト実行中
    echo.
    echo 最初のダイアログにはラジオのFLASH再生ページのURLを入力します。
    echo 次のダイアログにはアニメイトWEBラジオのクッキー情報を入力します。
    echo.

    cscript //e:jscript animate.rsite.js >script.txt

    REM コマンド作成処理へジャンプ

    goto command

【サイトスクリプトの実行 (64bit環境)】

:64bit

    REM スクリプト実行

    echo.
    echo 【64bit環境】アニメイトWEBラジオサイトスクリプト実行中
    echo.
    echo 最初のダイアログにはラジオのFLASH再生ページのURLを入力します。
    echo 次のダイアログにはアニメイトWEBラジオのクッキー情報を入力します。
    echo.

    %Systemroot%\SysWOW64\cscript.exe //e:jscript animate.rsite.js >script.txt

    REM コマンド作成処理へジャンプ

    goto command

REM 【ダウンロード実行コマンドの作成】

:command

    REM スクリプト実行結果(script.txt)からダウンロードコマンドだけを抽出して一時ファイル(down_comm.txt)に保存

    find "rtmpdump" < script.txt >down_comm.txt

    REM ダウンロードコマンドのみを抽出した一時ファイル(down_comm.txt)を遅延環境変数(RESULT)に取り込こむ。

    set RESULT=

    for /f "usebackq tokens=*" %%i in (`type down_comm.txt`) do (set RESULT=!RESULT!%%i)

    REM 取り込んだ遅延環境変数(RESULT)にレジュームオプション( -e)を付与して環境変数(DOWNCOMM)に置き換える。

    set DOWNCOMM=!RESULT! -e

    REM 環境変数(DOWNCOMM)をダウンロード用バッチファイル(download.bat)として出力する。

    echo %DOWNCOMM% >download.bat

    REM 作成されたダウンロードコマンドを画面に表示(きちんとできているか確認の為)

    echo.
    echo ****** 作成されたダウンロードコマンドは下記のようになります *****
    echo.
    type download.bat
    echo.
    echo 終了後は作成された download.bat を実行すればダウンロードできるハズです...たぶん
    echo.
    echo.

    REM ダウンロード用コマンドをクリップボードへコピーする。(Win7以降対応)

    clip < download.bat >nul

    REM ダウンロード用のバッチファイル終了時に確認できるようにウェイトを入れる。

    echo @timeout 10 >> download.bat
    echo @exit >> download.bat

    REM 作業用に作成したファイルを削除する。

    del script.txt >nul
    del down_comm.txt >nul
    
REM 【終了処理 15秒待ってウィンドウを閉じる(同時に作業に使用していた環境変数を開放する)】

:end

    timeout 15
    endlocal
    exit

-------ここから上をコピペしてください-------(この行は含めないこと)

適当に作ったので、windows10 64bit でしか動作の確認はしてませんがたぶん動くと思われます。

REMにそれぞれのコマンドが何をしているか記載をしておきました。改造する場合は参考にしてみてください。

終了時にダウンロード用コマンドをクリップボードにコピーするように修正しました。
(貼り付ければメモ帳などで確認が可能です。Win7以降対応のコマンドを使用しています。)

(16.03.10 18:50 バッチファイル追記・修正)
(16.03.18 06:50 XP環境での実行について追記)




トップページ