ソラマメブログ

2008年07月13日

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

こんにちは
ジョビンです

おひさしぶりー

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

以前つくった ようつべ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を送りなおさないと反映されないので
ご注意ください

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

タグ :中級LSL

同じカテゴリー(つれづれなるままに)の記事
 ご飯をおいしく食べるには (2008-02-12 12:53)
 グループの運営のしかた (2008-02-11 00:26)
 充足した人生を送るために (2008-02-08 22:05)
 年更けて また想ふ (2008-01-01 20:48)
 運命? (2007-08-27 20:25)
 RLでInWorldを感じた日 (2007-07-10 21:29)
この記事へのトラックバック
華月工房より、新商品のご案内です。本日、インワールドでYouTube動画をみることのできる、「You-Chu-Viewer(ゆーちゅーびゅーわー)」を発売いたしました。定価100L$ですが、オープン記念と...
【新商品】You-Chu-Viewer【オーダーメイドスクリプトの華月工房】at 2008年07月30日 19:44
この記事へのコメント
ハイライターこわれとる。。。
タグ [いつか直す]
Posted by Jvn WriterJvn Writer at 2008年07月13日 08:17
すご!
最初読み始めて、全部lslでやってしまうと思ってびっくりしましたが、
URL変換にYahoo!pipes使ってるんですね^^;
なるほど。
大変参考になりました^^
自分も次のバージョンはpipes使おうかなぁ?^^
Posted by sueno at 2008年07月14日 18:12
参考にしてもらえれば幸いです^^
おすすめしますよ~~
Posted by Jvn WriterJvn Writer at 2008年07月14日 21:32
お世話になっております。
早速、商品に使わせていただきました!

HTTPイベント内の&から4文字を削るルーチンですが、
strURL = llDeleteSubString(strURL, idx+1, idx+4);
ではいつまでたっても&が消えずに残ってしまうので、
strURL = llDeleteSubString(strURL, idx, idx+3);
と致しました~。
Posted by Kazki at 2008年07月30日 19:50
ここの部分で、やりたい事は

取り出した URL の中で
"&" ⇒ "&"

をやりたい訳だから idx+1 から idx+4 まで、

つまり "amp;" を削除するのが目的なので、

kazuki さんが言うように変更するのではなく、

idx = llSubStringIndex(strURL, "&") ;

という風に、"&" を見つけるように修正すると、

無限ループから抜け出せますし、目的の URL変換ができます。

素晴らしい Pipes を提供くださってありがとうございます。>Jvn Writerさん
Posted by BobunBobun at 2009年04月07日 16:23
お元気?w
Posted by UK at 2012年05月26日 22:01
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。