2008年07月13日
【中級】youtube url変換Webサービス公開
こんにちは
ジョビンです
おひさしぶりー
最近ようつべビューワはやってますね
もうすでに下火?
以前つくった ようつべurl変換をいまさら公開します
Web側の変換に悩んでる人はつかってくださいー
ゆうすけべ~さんのとこの変換プログラムつかってちゃだめですよっ
あそこの原理でやると
視聴者の人数分ゆうすけべさんのサーバーにアクセスがいっちゃいます
視聴者がたくさんいるところでチャンネルを変えると
まったく同じタイミングで複数のリクエストが飛ぶので
サーバーとめちゃうこともありうる
ていうかとめかけたことあります はい
したのスクリプトをこぴぺして
オブジェクトに入れてください
名前は適当でいいです
私は
JM-Tube URL Conv
って名前にしてます
同一プリム内の別スクリプトで呼び出します
こんなカンジで link_message を投げます
URL のところはご自由にどうぞ
これで自動再生されまする
画質を変えるには
って感じで画質が変わります
画質モード変えたあと、urlを送りなおさないと反映されないので
ご注意ください
以上
手抜き記事でした
つっこみ修正歓迎します
ジョビンです
おひさしぶりー
最近ようつべビューワはやってますね
もうすでに下火?
以前つくった ようつべ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を送りなおさないと反映されないので
ご注意ください
以上
手抜き記事でした
つっこみ修正歓迎します