Second Life Copybot
YouTube Video Player - Printable Version

+- Second Life Copybot (https://secondlifecopybot.com)
+-- Forum: SECOND LIFE PRODUCTS (https://secondlifecopybot.com/forum-1.html)
+--- Forum: SCRIPTS (https://secondlifecopybot.com/forum-1022.html)
+---- Forum: SCRIPTS (https://secondlifecopybot.com/forum-8.html)
+----- Forum: Communication Scripts (https://secondlifecopybot.com/forum-46.html)
+----- Thread: YouTube Video Player (/thread-899.html)



YouTube Video Player - ☠ MosDef ☠ - 02-20-2013

Code:
/*
Anonymous presents...
YouTube Video Player
Tags: scripts, chat, communications, media, movement, light, owner, parcel, primitive, texture, touch, video, featured
Description:
License:
None
http://secondlife.coolminds.org
*/

//send request to web server, get back a url
//set texture
//set parcel media url

string vidurl;
string vidid;
string homeurl;
key mediatexture = "d41f6ea7-e3d3-a8bf-d809-f7cfb52e4757";
string instructions = "Say YouTube links in chat to have them play.";
key httpid;

string VidID(string link)
{
    integer index = llSubStringIndex(link, "v=");
    return llGetSubString(link, index + 2, index + 12);
}

default
{
    touch_start(integer num)
    {
        llSay(0, instructions);
    }
    
    state_entry()
    {
        llSetPrimitiveParams([PRIM_BUMP_SHINY, ALL_SIDES, PRIM_SHINY_NONE, PRIM_BUMP_NONE, PRIM_COLOR, ALL_SIDES, <1,1,1>, 1.0, PRIM_MATERIAL, PRIM_MATERIAL_PLASTIC, PRIM_FULLBRIGHT, ALL_SIDES, 1, PRIM_TEXTURE, ALL_SIDES, NULL_KEY, llGetTextureScale(2), llGetTextureOffset(2), llGetTextureRot(2)]);
        llSetTexture(mediatexture, ALL_SIDES);        
        if (llGetOwner() == llGetLandOwnerAt(llGetPos()))
        {
            llListen(0, "", NULL_KEY, "");
            llListen(1, "", NULL_KEY, "");
            llSay(0, instructions);
        }
        else
        {
            llSay(0, "Error: I am not owned by the landowner.  If the land is group owned, I need to be deeded to group.");
        }

    }
    
    on_rez(integer param)
    {
        llResetScript();
    }
    
    changed(integer change)
    {        
        if (change & CHANGED_OWNER)
        {
            llResetScript();
        }
    }
    
    listen(integer channel, string name, key id, string message)
    {
        if (~llSubStringIndex(message, "http://www.youtube") || ~llSubStringIndex(message, "http://youtube")||~llSubStringIndex(message, "https://www.youtube") || ~llSubStringIndex(message, "https://youtube"))
        {
            list params;
            string vidid;
            //turn the data into a vidid
            vidid = VidID(message);
            //llOwnerSay(vidid);
            string hd;
            if (channel == 1) hd = ".mp4?fs=1";
            else hd = ".mp4";
            homeurl = "http://www.youtubemp4.com/video/" + vidid + hd;
            params = [PARCEL_MEDIA_COMMAND_URL, homeurl];
            params += [PARCEL_MEDIA_COMMAND_TYPE, "video/mp4"];
            llParcelMediaCommandList(params);
            llSay(0, "Playing " + message + ".  Push play on your viewer.");          
        }
    }
}