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を送りなおさないと反映されないので
ご注意ください
以上
手抜き記事でした
つっこみ修正歓迎します
Posted by Jvn Writer at 08:15│Comments(6)
│つれづれなるままに
この記事へのトラックバック
華月工房より、新商品のご案内です。本日、インワールドでYouTube動画をみることのできる、「You-Chu-Viewer(ゆーちゅーびゅーわー)」を発売いたしました。定価100L$ですが、オープン記念と...
【新商品】You-Chu-Viewer【オーダーメイドスクリプトの華月工房】at 2008年07月30日 19:44
この記事へのコメント
ハイライターこわれとる。。。
タグ [いつか直す]
タグ [いつか直す]
Posted by Jvn Writer at 2008年07月13日 08:17
すご!
最初読み始めて、全部lslでやってしまうと思ってびっくりしましたが、
URL変換にYahoo!pipes使ってるんですね^^;
なるほど。
大変参考になりました^^
自分も次のバージョンはpipes使おうかなぁ?^^
最初読み始めて、全部lslでやってしまうと思ってびっくりしましたが、
URL変換にYahoo!pipes使ってるんですね^^;
なるほど。
大変参考になりました^^
自分も次のバージョンはpipes使おうかなぁ?^^
Posted by sueno at 2008年07月14日 18:12
参考にしてもらえれば幸いです^^
おすすめしますよ~~
おすすめしますよ~~
Posted by Jvn Writer at 2008年07月14日 21:32
お世話になっております。
早速、商品に使わせていただきました!
HTTPイベント内の&から4文字を削るルーチンですが、
strURL = llDeleteSubString(strURL, idx+1, idx+4);
ではいつまでたっても&が消えずに残ってしまうので、
strURL = llDeleteSubString(strURL, idx, idx+3);
と致しました~。
早速、商品に使わせていただきました!
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さん
取り出した URL の中で
"&" ⇒ "&"
をやりたい訳だから idx+1 から idx+4 まで、
つまり "amp;" を削除するのが目的なので、
kazuki さんが言うように変更するのではなく、
idx = llSubStringIndex(strURL, "&") ;
という風に、"&" を見つけるように修正すると、
無限ループから抜け出せますし、目的の URL変換ができます。
素晴らしい Pipes を提供くださってありがとうございます。>Jvn Writerさん
Posted by Bobun at 2009年04月07日 16:23
お元気?w
Posted by UK at 2012年05月26日 22:01