Youtube TV

From Second Life Wiki
Revision as of 09:33, 25 January 2015 by ObviousAltIsObvious Resident (talk | contribs) (<lsl> tag to <source>)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

IMPORTANT:

Since Youtube changed their format, the TV is not working. I'm working on my new webserver to get it back to work, but it still buggy, mainly in the fact the video url size is too big to be set yet. Use this code as base only.

This script is not working anymore. Use it only for learning purposes.

Code (not working):

Note: these scripts rely on a private external server, http://secondtools.ismywebsite.com/youtube/getvideotext.php. On 10/15/09, I tried it and that server isn't returning anything meaningful. The problem was fixed and some videos are now visible, no update on script needed.

To make a YouTube TV you only need 2 scripts, each one in one prim:

Get Video.lsl

integer listenid;

default
{
    touch_start(integer i)
    {
        if(llDetectedKey(0) == llGetOwner())
        {
            llOwnerSay("Please type: /65 (Youtube video id) Example: Video URL: http://youtube.com/video?v=blablabla Video ID: blablabla");
            listenid = llListen(65, "", llGetOwner(),"");
        }
    }
    listen(integer c, string n, key k, string m)
    {
        llListenRemove(listenid);
        if(k == llGetOwner())
        {
            llHTTPRequest("http://secondtools.ismywebsite.com/youtube/getvideotext.php?v="+m,[],"");
        }
    }
    http_response(key requestid, integer status, list metadata, string body)
    {
        llOwnerSay("Connecting...");
        llParcelMediaCommandList([PARCEL_MEDIA_COMMAND_URL,body]);
    }
}

Get Texture.lsl

default
{
    state_entry()
    {
        
    }
    
    touch_start(integer i)
    {
        if(llDetectedKey(0) == llGetOwner())
        {
            llOwnerSay("Getting Parcel Media Texture...");
            string landTexture;
            landTexture = (string) llParcelMediaQuery([PARCEL_MEDIA_COMMAND_TEXTURE]);
            llSetTexture(landTexture,ALL_SIDES);
        }
    }
}

Now is only sit and watch your favorite Youtube videos!