Site search

Google
WWW を検索 backup-beta.blogspot.com を検索

2009年5月28日木曜日

YouTube-mp4アドレス変換スクリプト(修正版)

去年、試しに書いたYouTubeのアドレス変換スクリプト http://backup-beta.blogspot.com/2008/06/youtube_21.htmlなんですが、不完全だった部分を修正したものを載せときますね。。。いつか直したの載せようって思ってたんですが、ずっと後回しにしてたら忘れかけてたんですよ^^;

このスクリプトはYouTubeのアドレスをmp4の動画アドレスに変換して、土地のメディアURLに設定します。(自分名義の土地が必要)

今回の修正では、次のようなYouTubeアドレスのビデオIDの後ろにパラメータが付いてるものも正しく変換するようにしています。
http://www.youtube.com/watch?v=6KgHDLORnWY&feature=channel_page
あと、当時は土地持ってなかったので、ちょっと動作に自信なくてスクリプトに注釈も入れてませんが、今回はテキトーに入れときましたw


オーナーのチャットでユーチューブのURLを入力するようにしてますが、今回のスクリプトではチャンネルを1にしてます。
/1 http://www.youtube.com/watch?v=6KgHDLORnWY&feature=channel_page
それからllParcelMediaCommandListでのアバター限定をつけてませんので、設定された動画はオーナー以外も見れます。
// YouTube mp4 converter
integer ch=1;  // チャット入力用チャンネル

string youtube2mp4url(string video_url)
{
    if (llGetSubString(video_url,0,6) != "http://") return "";  // httpアドレス以外は空文字を返す
    string yturl=".youtube.com/watch?v=";
    string mp4url1="http://www.youtubemp4.com/video/";
    string mp4url2=".mp4";
    integer ytl=llStringLength(yturl);
    integer i=llSubStringIndex(video_url,yturl);  // URLチェック
    if (i > 7) {  // youtube.comだったら
        string str=llGetSubString(video_url,i+ytl,-1);  // ビデオID以降の文字列
        i=llSubStringIndex(str,"&");  // &チェック
        if (~i) str=llGetSubString(str,0,i-1);  // &があったら&以降をカット
        video_url=mp4url1+str+mp4url2;  // URLを変換
    }
    return video_url;  // URLの文字列をリターン
}

default
{
    state_entry()
    {
        llListen(ch, "", llGetOwner(), "");  // チャンネル(1)でオーナーの発言をリッスン
    }

    on_rez(integer start_param)
    {
        llResetScript();  // 持ち物から出したときリセット
    }

    listen(integer channel, string name, key id, string msg)
    {
        if (channel == ch && id == llGetOwner())
        {  // オーナーのチャット受信
            string url=youtube2mp4url(msg);  // URL変換
            if (url) {  // URLを得たら土地に設定
                llParcelMediaCommandList([
                    PARCEL_MEDIA_COMMAND_URL,url,
                    PARCEL_MEDIA_COMMAND_TYPE,"video/*"]);
                    llOwnerSay("Video URL = "+url);
            }
        }
    }
}

mp4アドレス変換サービスは前回のスクリプト同様www.youtubemp4.comを利用させてもらいましたが、www.vidney.comを使う場合
string mp4url1="http://www.vidney.com/d/download_vidney.php?v=yt";
string mp4url2="&f=mp4";
に変えてくださいね。

6月4日追記: www.vidney.comは仕様が変わって使えなくなってました。


2010年6月28日追記: 2010年3月のYouTubeの仕様変更以来www.youtubemp4.comも有効なMP4アドレスを取得できなくなっています。

0 件のコメント:

コメントを投稿