i am using an joomla extension for my video gallery but the video player does not support You tube playlist (after part-1 paying does it l continuous playing other part of video) here is the code for player can anyone help me on how to add the playlist support to the player package com.medias { import flash.display.Loader; import flash.events.Event; import flash.net.URLRequest; import com.player.Player; import flash.system.Security; public class YoutubeMedia extends AbstractMedia { public function YoutubeMedia() { super(); Security.allowDomain("*"); this.isStarted = false; this.loader = new Loader(); } private var player:Object; private var loader:Loader; private var config:Object; private var isStarted:Boolean; override public function load(param1:Object) : void { this.config = param1; this.loader.contentLoaderInfo.addEventListener(Event.INIT,this.onLoaderInit); this.loader.load(new URLRequest("http://www.youtube.com/apiplayer?version=3")); } override public function play() : void { Player.events.dispatch("onStateChange","BUFFER.FULL"); this.player.playVideo(); } override public function pause() : void { this.player.pauseVideo(); } override public function setPos() : void { if(this.player) { this.player.setSize(Player.width,Player.height - Player.minusHei); } } override public function destroy() : void { if(this.player) { this.player.mute(); this.player.destroy(); } if(this.loader) { this.loader.unload(); } } private function getID(param1:String) : String { var _loc2_:* = undefined; var _loc3_:* = undefined; var _loc4_:* = undefined; if(param1.indexOf("?") > -1) { _loc2_ = param1.split("?"); _loc3_ = ""; for(_loc4_ in _loc2_) { if(_loc2_[_loc4_].substr(0,2) == "v=") { _loc3_ = _loc2_[_loc4_].substr(2); } } if(_loc3_ == "") { _loc3_ = param1.substr(param1.indexOf("/v/") + 3); } if(_loc3_.indexOf("&") > -1) { _loc3_ = _loc3_.substr(0,_loc3_.indexOf("&")); } } else if(param1.indexOf("youtu.be/") > -1) { _loc2_ = param1.split("youtu.be/"); _loc3_ = _loc2_[1]; } return _loc3_; } private function onLoaderInit(param1:Event) : void { addChild(this.loader); this.loader.content.addEventListener("onReady",this.onPlayerReady); this.loader.content.addEventListener("onError",this.onPlayerError); this.loader.content.addEventListener("onStateChange",this.onPlayerStateChange); this.loader.content.addEventListener("onPlaybackQualityChange",this.onVideoPlaybackQualityChange); } private function onPlayerReady(param1:Event) : void { Player.events.dispatch("onStateChange","BUFFER.FULL"); Player.events.dispatch("onStateChange","MEDIA.START"); this.player = this.loader.content; if(Player.currPlaybackMode == "hdQuality") { this.player.loadVideoById(this.getID(this.config["video"]),0,"hd720"); } else { this.player.loadVideoById(this.getID(this.config["video"]),0,"medium"); } this.volume = this.config["volumeLevel"]; this.setPos(); } private function onPlayerError(param1:Event) : void { this.destroy(); Player.events.dispatch("onError","Video not found \n( or )\n Embedding for this video is disabled by its owner."); } private function onPlayerStateChange(param1:Event) : void { switch(Object(param1).data) { case 0: this.isStarted = false; Player.events.dispatch("onStateChange","MEDIA.STOP"); break; case 1: if(!this.isStarted) { this.isStarted = true; this.onPlayStart(); } break; } } private function onVideoPlaybackQualityChange(param1:Event) : void { } private function onPlayStart() : void { var _loc1_:Array = this.player.getAvailableQualityLevels(); if(_loc1_.length > 1) { Player.events.dispatch("onStateChange","SHOW.HD"); } } override public function get bytesLoaded() : Number { if(this.player) { return this.player.getVideoBytesLoaded(); } return 0; } override public function get bytesTotal() : Number { if(this.player) { return this.player.getVideoBytesTotal(); } return 0; } override public function get bufferPercent() : Number { return 0; } override public function get duration() : Number { if(this.player) { this.config["duration"] = this.player.getDuration(); return this.config["duration"]; } return 0; } override public function get time() : Number { if(this.player) { return this.player.getCurrentTime(); } return 0; } override public function get seek() : Number { if(this.player) { return this.player.getCurrentTime() / this.config["duration"]; } return 0; } override public function set seek(param1:Number) : void { this.player.seekTo(param1 * this.config["duration"]); } override public function set volume(param1:Number) : void { this.player.setVolume(param1 * 100); } } } Code (markup):