ソラマメブログ

2008年06月28日

YouTube プレイリスト2

なぜか YouTube を見るソフトの調子もその場所にいること自体も調子が悪くて あんまりあの後 YouTube は見ていないんだけれど ^^;
-----
最近ログが取られてなかったことに気付き あ~ purin の見ていたやつをリストにできない
-----
と思っていたんだが IE に履歴が残っていることに気付き それを元に 前に作った自作のスクリプトでプレイリストを作ってみることにした
-----
実際に使ってみると まだ少し手間に感じたので 少し改造した ^^
-----

-----
使い方は変わらず
-----
url_list というノートに 下記のような URL のみをばらばら書いておいて
-----
クリックすると
-----
チャットの方に出力
-----
前は 1行1行ばらばら出していたけれど タイトルでソートした後 改行で繋いで出力するようにした
-----
画面上は 1行に見えるけれど この部分をコピペして取り出すと複数行になっているよ ^^
-----
というわけでリストもあげておきます
//
// File: YouTubePlaylistMaker.lsl
// Date Author number of nodes
// 2008/6/28 walkinglint 90
// 2008/6/17 walkinglint 79
// 2008/6/17 walkinglint 44 (dance_ring->YouTubePlaylistMaker)
// 2007/9/11 walkinglint 83
// 2007/9/10 walkinglint 82
//
string notecard_name = "url_list";
integer read_line;
key query_id;
integer i;
integer j;
string url;
list convert_list;
integer url_num;
key requestid;
list url_list;
list lines;
activate_load_and_convert() {
url_list = [];
llOwnerSay("Now Loading..");
read_line = 0;
if (llGetInventoryType(notecard_name) == INVENTORY_NOTECARD) {
query_id = llGetNotecardLine(notecard_name, read_line); // request first line
} else {
llOwnerSay("Notecard " + notecard_name + " is not found");
}
}
convert() {
url_num = 0;
convert_body();
}
convert_body() {
if (url_num < llGetListLength(url_list)) {
requestid = llHTTPRequest(llList2String(url_list, url_num), [HTTP_METHOD, "GET"], "");
} else {
lines = llListSort(lines, 1, TRUE);
string text = "";
for (i = 0; i < llGetListLength(lines); i++) {
text += "\n" + llList2String(lines, i);
}
llOwnerSay(text);
}
}
// http://www.secondforum.de/thread.php?threadid=2847
string llReplaceString(string source, list replace) {
while (llSubStringIndex(source, llList2String(replace, 0)) != -1) {
integer index = llSubStringIndex(source, llList2String(replace, 0));
string temp = llDeleteSubString(source,
index, (index + (llStringLength(llList2String(replace, 0)) - 1)));
source = llInsertString(temp, index, llList2String(replace, 1));
}
return source;
}
default {
on_rez(integer start_param) {
llResetScript();
}
touch_start(integer total_number) {
url_list = [];
lines = [];
activate_load_and_convert();
}
dataserver(key queryid, string data) {
if (queryid == query_id) {
if (data != EOF) {
// process data
if (llStringLength(data) != 0) {
url_list = url_list + [data];
}
read_line++;
query_id = llGetNotecardLine(notecard_name, read_line);
} else {
llOwnerSay("Loading complete.");
convert();
}
}
}
http_response(key request_id, integer status, list metadata, string body) {
string title = "";
if (request_id == requestid) {
integer i = llSubStringIndex(body, "YouTube - ");
integer j = llSubStringIndex(body, "/title>");
if ((i != -1) && (j != -1)) {
title = llGetSubString(body, i + llStringLength("YouTube - "), j - 2);
title = llReplaceString(title, ["&amp;", "&"]);
title = llReplaceString(title, ["&quot;", "\""]);
}
lines += title + "," + llList2String(url_list, url_num);
url_num++;
convert_body();
}
}
}
あ そうそう 上記の出力リストは
-----
Avril Lavigne - Hot Japanese Version Music Video,http://jp.youtube.com/watch?v=hX8wi7xOpec
Mariah Carey_Without You,http://jp.youtube.com/watch?v=vOR_jq9M53c&
Miles Away MADONNA Change マドンナ 新曲,http://jp.youtube.com/watch?v=WGv5_TeZjNw
Nelly Furtado Say it Right,http://jp.youtube.com/watch?v=AO6SnX9s5-w
アース・ウィンド・アンド・ファイアー - 宇宙のファンタジー,http://jp.youtube.com/watch?v=zoOzi1jlRZI

同じカテゴリー(YouTube プレイリスト)の記事
 セカンドライフ関連 YouTube 動画(その6) (2008-08-18 22:04)
 セカンドライフ関連 YouTube 動画(その5) (2008-08-09 12:38)
 セカンドライフ関連 YouTube 動画(その4) (2008-08-08 16:02)
 セカンドライフ関連 YouTube 動画(その3) (2008-08-06 08:52)
 セカンドライフ関連 YouTube 動画(その2) (2008-07-29 08:58)
 セカンドライフ関連 YouTube 動画 (2008-07-28 22:25)
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。