YouTubeの動画を再生するスクリプトです。
YouTubeの動画は、直接はSL内で再生は出来ませんが、YouTubeの
動画をmpeg4というフォーマットに変換することにより再生が可能です。
YouTubeMP4というサイトで、ダイレクトにフォーマット変換が可能です。
便利なサイトがあるものですw今回のスクリプトは、こちらのサイトを利用します。
こちらのサイトは、セカンドライフブログでも紹介されています。
YouTubeMP4 to play YouTube in Second Life
興味のある方はどうぞw
「スクリプト内容」
//
// SHOP ZERO Tips29 YouTubePlayer script v1.0
//
// Created by Zero2000 Kid 2008/08/02
//
string YouTubeURL="http://youtube.com/watch?v=QVIR1pNcow8";
string meaditexture="28a7710a-1ca8-07ec-b0c2-cd2f0cf7cc43";
integer input_ch = -29;
integer handle;
default
{
state_entry(){
llSetTexture((key)meaditexture,ALL_SIDES);
// URL convert
list ulist=llParseString2List(YouTubeURL, ["watch?v="], []);
string mediakey=llList2String(ulist,1);
string url="http://www.youtubemp4.com/video/"+mediakey+".mp4";
// Media initialize
llParcelMediaCommandList( [
PARCEL_MEDIA_COMMAND_URL, url,
PARCEL_MEDIA_COMMAND_TEXTURE, (key) llGetTexture(0),
PARCEL_MEDIA_COMMAND_AUTO_ALIGN,TRUE] );
}
touch_start(integer t) {
handle = llListen(input_ch,"",llDetectedKey(0),"");
llDialog(llDetectedKey(0), "PLEASE SELECT MENU",["PLAY","STOP","CANCEL"], input_ch);
}
listen(integer ch, string name, key id, string message) {
if (message=="PLAY") {
llWhisper(0,"YouTube play start...");
llParcelMediaCommandList([PARCEL_MEDIA_COMMAND_PLAY]);
} else if (message=="STOP") {
llWhisper(0,"You Tube play stop.");
llParcelMediaCommandList([PARCEL_MEDIA_COMMAND_STOP]);
}
llListenRemove(handle);
}
}
「使用方法」
1. 動画再生のスクリーン用のオブジェクトを1つ作成します。(普通のボックスで良いでしょう)
2. オブジェクトにスクリプトをドラッグします。
3. 再生を行いたいYouTubeの動画URLを調べます。
URL例 : http://youtube.com/watch?v=QVIR1pNcow8
4. スクリプト1行目のYouTubeURL変数にYouTube動画のURLをセットします。
以上で準備完了です。
スクリーンオブジェクトをクリックすると青いダイアログが出ますのでSTARTをクリックして
動画をスタートしてください。
* 動画再生には、スクリプトのオーナーにその土地の権限が必要です。
「スクリプトの説明」
このスクリプトのポイントは、YouTubeの動画URLをYouTubeMP4のサイト用のURLに書き換えて
再生を実行している点です。
各サイトのURLフォーマットは以下のようになっています。
YouTube用のURL :http://youtube.com/watch?v=(動画のキー文字列)
YouTubeMP4用のURL :http://youtubemp4.com/video/(動画のキー文字列).mp4
以下の部分でURLを書き換えています。
// URL convert
--- YouTubeURLを"watch?v="という単語をセパレータとして、リスト変数ulistに格納
list ulist=llParseString2List(YouTubeURL, ["watch?v="], []);
--- リスト変数ulistから、動画のキーとなる文字列を取得し、mediakey変数に格納
string mediakey=llList2String(ulist,1);
--- YouTubeMP4サイト用のURLを生成
string url="http://www.youtubemp4.com/video/"+mediakey+".mp4";
あとは、生成したURLをllParcelMediaCommandListコマンドを使用して動画を再生しています。
リンデンスクリプト Tips Intexへ