【中級】youtube url変換Webサービス公開

Jvn Writer

2008年07月13日 08:15


こんにちは
ジョビンです

おひさしぶりー

最近ようつべビューワはやってますね
もうすでに下火?

以前つくった ようつべurl変換をいまさら公開します
Web側の変換に悩んでる人はつかってくださいー
ゆうすけべ~さんのとこの変換プログラムつかってちゃだめですよっ
あそこの原理でやると

視聴者の人数分ゆうすけべさんのサーバーにアクセスがいっちゃいます

視聴者がたくさんいるところでチャンネルを変えると
まったく同じタイミングで複数のリクエストが飛ぶので
サーバーとめちゃうこともありうる
ていうかとめかけたことあります はい


URL 変換するプログラム



したのスクリプトをこぴぺして
オブジェクトに入れてください
名前は適当でいいです
私は

 JM-Tube URL Conv

って名前にしてます



string strURL;
key Query;
integer isHighFormat = FALSE;

default
{
on_rez(integer n){llResetScript();}

link_message(integer sender_num, integer num, string str, key id)
{

if((string)id == "set_quality")
isHighFormat = num;

if((string)id != "set_url")
return;

strURL = str;
state set;
}

}

state set
{
state_entry()
{
if(llSubStringIndex(strURL, "youtube")==-1)
state default;

if(isHighFormat==1)
strURL = "http://pipes.yahoo.com/pipes/pipe.run?_id=5a068edc3e7197ed30c21a4f90363fe2&_render=csv&format=18&url=" + strURL;
else if(isHighFormat==0)
strURL = "http://pipes.yahoo.com/pipes/pipe.run?_id=5a068edc3e7197ed30c21a4f90363fe2&_render=csv&format=17&url=" + strURL;
else if(isHighFormat==2)
strURL = "http://pipes.yahoo.com/pipes/pipe.run?_id=45d0f4c39c45d25fabdfb58fe550419b&_render=csv&url=" + strURL;

Query = llHTTPRequest(strURL, [HTTP_METHOD,"GET"], "");
}

http_response(key request_id, integer status, list metadata, string body)
{

if(request_id != Query)
return;

if(body=="")
{
llSay(0,"Sorry, request url is not converted.");
return;
}

list Ret = llParseString2List(body, ["\n"], []);
strURL = llList2String(Ret,1);
integer idx = llSubStringIndex(strURL, "&");

while( idx > -1)
{
strURL = llDeleteSubString(strURL, idx+1, idx+4);
idx = llSubStringIndex(strURL, "&");
}

state default;
}

state_exit()
{
llParcelMediaCommandList([PARCEL_MEDIA_COMMAND_STOP,
PARCEL_MEDIA_COMMAND_URL,strURL,
PARCEL_MEDIA_COMMAND_TYPE,"video/*"]);

llParcelMediaCommandList([PARCEL_MEDIA_COMMAND_PLAY]);
llSay(0,"Media setting is changed!");
}
}


URLをセットするスクリプト



同一プリム内の別スクリプトで呼び出します
こんなカンジで link_message を投げます


llMessageLinked(LINK_THIS, 0, "http://jp.youtube.com/watch?v=7hASyYBsExE", "set_url");


URL のところはご自由にどうぞ
これで自動再生されまする

画質を変えるには

llMessageLinked(LINK_THIS, 0, "", "set_quality"); // 中画質モード 軽め
llMessageLinked(LINK_THIS, 1, "", "set_quality"); // 高画質モード 重い mpeg4
llMessageLinked(LINK_THIS, 2, "", "set_quality"); // 携帯用フォーマット 軽い 荒い

って感じで画質が変わります
画質モード変えたあと、urlを送りなおさないと反映されないので
ご注意ください

以上
手抜き記事でした
つっこみ修正歓迎します
つれづれなるままに