1var RYPP=function($,undefined){"use strict";function Rypp(el,api_key,options){if(typeof api_key==="undefined"){console.log("Youtube API V3 requires a valid API KEY.\nFollow the instructions at: https://developers.google.com/youtube/v3/getting-started");return false}this.ytcfg={};this.DOM={};this.options={};this.data={ytapi:{playlist_info:"https://www.googleapis.com/youtube/v3/playlists?part=snippet&id={{RESOURCES_ID}}&key={{YOUR_API_KEY}}",playlist:"https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=50&playlistId={{RESOURCES_ID}}&key={{YOUR_API_KEY}}",pl_ID:"",videolist:"https://www.googleapis.com/youtube/v3/videos?part=snippet,status&maxResults=50&id={{RESOURCES_ID}}&key={{YOUR_API_KEY}}"},temp_vl:[],firsttime:true,ismobile:typeof window.orientation!=="undefined",ispopulated:false,desc:false};this.init(el,api_key,options)}Rypp.prototype={init:function(el,api_key,options){this.api_key=api_key;this.options={update_title_desc:false,autoplay:false,autonext:true,loop:true,mute:false,debug:false};this.desc={};this.hires={};if(typeof options!=="undefined"){$.extend(this.options,options)}this.DOM={};this.DOM.$el=$(el);this.DOM.$playlc=this.DOM.$el.find(".RYPP-playlist");this.DOM.$items=this.DOM.$el.find(".RYPP-items");this.DOM.$videoc=this.DOM.$el.find(".RYPP-video");this.DOM.$title=this.DOM.$el.find(".RYPP-title");this.DOM.$desc=this.DOM.$el.find(".RYPP-desc");$(".RYPP-items").append('<h2 class="acrd__title">Show more</h2>');this.DOM.$el[0].ytplayer=null;this.data.player_uid=Math.random().toString(16).substr(2,8);this.DOM.$el.attr("data-rypp",this.data.player_uid).find(".RYPP-video-player").attr("id","RYPP-vp-"+this.data.player_uid).attr("name","RYPP-vp-"+this.data.player_uid);if(this.options.debug)console.log("Unique ID: RYPP-vp-"+this.data.player_uid);if(typeof window.YT==="undefined"){var tag=document.createElement("script"),hID=document.getElementsByTagName("head")[0];tag.src="https://www.youtube.com/iframe_api?version=3";hID.appendChild(tag)}else{this.addAPIPlayer()}},onYTIframeAPIReadyCallback:function(){this.addAPIPlayer()},updateTitleDesc:function(){var that=this,resources_id=this.DOM.$el.attr("data-playlist"),url=this.data.ytapi.playlist_info.replace("{{RESOURCES_ID}}",resources_id).replace("{{YOUR_API_KEY}}",this.api_key);$.ajaxSetup({cache:false});$.ajax(url,{context:this,dataType:"json",crossDomain:true,error:function(){},success:function(data){this.DOM.$title.html(data.items[0].snippet.title);this.DOM.$desc.html(data.items[0].snippet.description)}})},populatePlaylist:function(){if(this.options.update_title_desc){if(this.options.debug)console.log(this.data.player_uid+": Updating playlist title / desc");this.updateTitleDesc()}if(this.options.debug)console.log(this.data.player_uid+": Populating playlist");this.DOM.$items.append($("<ol>"));if($("html").hasClass("bx-touch")){this.DOM.$items.find("ol").hide()}if(this.DOM.$el.attr("data-playlist")){this.data.pl_ID=this.DOM.$el.attr("data-playlist");this.getVideosFrom("playlist",this.data.pl_ID)}else if(this.DOM.$el.attr("data-ids")){var vl=this.DOM.$el.attr("data-ids");vl=$.map(vl.split(","),$.trim).join(",");this.getVideosFrom("videolist",vl)}},addAPIPlayer:function(){var that=this;var settings={playerVars:{showinfo:0,enablejsapi:1,rel:0,modestbranding:1,wmode:"transparent"},events:{onReady:function(){if(that.options.debug)console.log(that.data.player_uid+": ytplayer ready");that.onPlayerReady()},onStateChange:function(e){that.onPlayerStateChange(e)},onError:function(e){console.log(e)}}};if(that.DOM.$el.attr("data-ccpolicy")){settings["playerVars"]["cc_load_policy"]=1}if(that.DOM.$el.attr("data-hl")){settings["playerVars"]["hl"]=that.DOM.$el.attr("data-hl")}window.YTConfig={host:"https://www.youtube.com"};this.DOM.$el[0].ytplayer=new YT.Player("RYPP-vp-"+that.data.player_uid,settings)},onPlayerReady:function(){if(this.options.debug)console.log(this.data.player_uid+": ytplayer ready callback");this.populatePlaylist()},onPlayerStateChange:function(e){var that=this;if(typeof e!=="undefined"){if(e.data===-1&&this.data.firsttime){if(!this.options.autoplay&&!this.data.ismobile){this.DOM.$el[0].ytplayer.stopVideo();this.data.firsttime=false}if(this.options.mute){this.DOM.$el[0].ytplayer.mute()}}if(e.data===3&&this.data.ismobile&&this.data.firsttime){setTimeout(function(){that.DOM.$el[0].ytplayer.stopVideo();that.data.firsttime=false},500)}var next=null;if(e.data===0&&!this.data.ismobile&&this.options.autonext){next=this.DOM.$items.find("li.selected").next();if(next.length===0&&this.options.loop){next=this.DOM.$items.find("li").first()}next.trigger("click")}}},getVideosFrom:function(kind,resources_id,page_token){var that=this,url=this.data.ytapi[kind].replace("{{RESOURCES_ID}}",resources_id).replace("{{YOUR_API_KEY}}",this.api_key);if(typeof page_token!=="undefined"){url+="&pageToken="+page_token}$.ajaxSetup({cache:false});$.ajax(url,{context:this,dataType:"json",crossDomain:true,error:function(){},success:function(data){if(data.kind==="youtube#playlistItemListResponse"){var video_set=[];$.map(data.items,function(val,idx){if(typeof val.snippet.resourceId.videoId!=="undefined"){video_set.push(val.snippet.resourceId.videoId)}});that.data.temp_vl.push(video_set);if(typeof data.nextPageToken!=="undefined"&&data.nextPageToken!==""){that.getVideosFrom("playlist",that.data.pl_ID,data.nextPageToken)}else{for(var j=0,len_pl=that.data.temp_vl.length;j<len_pl;j++){video_set=that.data.temp_vl.shift();that.getVideosFrom("videolist",video_set.join(","))}}}else if(data.kind==="youtube#videoListResponse"){for(var i=0,len=data.items.length;i<len;i++){var item=data.items[i];if($.inArray(item.status.uploadStatus,["rejected","deleted","failed"])===-1&&typeof item.snippet.thumbnails!=="undefined"){var vid=item.id,tit=item.snippet.title,aut=item.snippet.channelTitle,thu=item.snippet.thumbnails.standard.url;this.desc[vid]=item.snippet.description.replace(/<(?:.|\n)*?>/gm,"").replace(/(?:\r\n|\r|\n)/g,"<br>");if(typeof item.snippet.thumbnails.standard!=="undefined"){this.hires[vid]=item.snippet.thumbnails.standard.url}that.addVideo2Playlist(vid,tit,aut,thu)}if($.isEmptyObject(that.data.temp_vl)){this.startPlayList()}}}}})},startPlayList:function(){var D=this.DOM,vid=null,that=this;var hover=false;D.$items.on("click ","li",function(e){e.preventDefault();$(".block-play__video img").show();$(".block-play__video .block-video-full__item-bg").show();$(".block-play__video .block-play_video-icon").show();if(that.data.ismobile){$(".block-play__video img").hide();$(".block-play__video .block-video-full__item-bg").hide();$(".block-play__video .block-play_video-icon").hide();if(D.$items.find("li.selected").length!==0){$("body").animate({scrollTop:$(this).parents(".RYPP").offset().top-64},100)}}D.$items.find("li").removeClass("selected");$(this).addClass("selected");vid=$(this).data("video-id");that.DOM.$el[0].ytplayer.cueVideoById(vid);$(".block-play__description").html(that.desc[vid]);$(".block-play__video > img").attr("src",that.hires[vid]);$(".block-play_video-icon h3").html($(this).find(".title").html());if(that.data.ismobile){that.data.firsttime=true}});$(".block-play__video").on("click touchstart",function(e){e.preventDefault();that.DOM.$el[0].ytplayer.playVideo();$(".block-play__video img").hide();$(".block-play__video .block-video-full__item-bg").hide();$(".block-play__video .block-play_video-icon").hide()});if(D.$items.find("li.selected").length===0){D.$items.find("li").first().click()}if(that.data.ismobile){$(".block-play__video img").hide();$(".block-play__video .block-video-full__item-bg").hide();$(".block-play__video .block-play_video-icon").hide()}},addVideo2Playlist:function(vid,tit,aut,thu){var D=this.DOM;
1$('<li data-video-id="'+vid+'"><div class="playlist-thumb"><img src="'+thu+'" class="thumb"><div class="block-video-full__item-bg"></div></div><p class="title">'+tit+"</p></li>").appendTo(D.$items.find("ol"))}};return Rypp}(jQuery);function onYouTubeIframeAPIReady(){$("[data-rypp]").each(function(idx,el){$(el)[0].rypp_data_obj.onYTIframeAPIReadyCallback()})}$.fn.rypp=function(api_key,options){return this.each(function(){this.rypp_data_obj=new RYPP(this,api_key,options)})};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.