Jango Raid
<!DOCTYPE html> <html lang="en"> <head> <link rel="canonical" href="http://jango-raid.tk/" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Jango Raid ·• Search Jango Radio •· MP3 ¦ M4A ¦ Video</title> <meta name="description" content="Jango Raid : Search for music on Jango Radio by artist name or song title. Find mp3, m4a, or video." /> <style> a { text-decoration: none; color: white } </style> </head> <body style="color: white; background: black;"> <script> var formfocus = true; function focus_action() { formfocus = false; } </script> <form> <table> <tr><td><label><input onclick="site_action()" type="radio" checked id="jango_site" disabled name="site" value="jango" />Jango</label></td><td></td><td></td></tr> <tr><td><label><input onclick="site_action()" type="radio" id="noadradio_site" disabled name="site" value="noadradio" />NoAdRadio</label></td><td> </td><td> <select id="select"><option id="low">Low Quality</option><option id="medium">Medium Quality</option><option selected id="high">High Quality</option></select></td></tr> </table> </form> <form name="form" onsubmit="return search_action()" onreset="return reset_action()"> <table> <tr><td><label for="artist">Artist Name</label></td><td>:</td><td><input type="text" id="artist" onfocus="focus_action()" /></td> <td><input id="search_button" name="button" type="submit" value="Search Jango" disabled /></td></tr> <tr><td><label for="song">Song Title</label></td><td>:</td><td><input type="text" id="song" onfocus="focus_action()" /></td> <td><input id="reset_button" name="reset" type="reset" value="Reset" /><span id="error" style="visibility:hidden"></span></td></tr> <tr><td><label for="artist_id">Artist ID</label></td><td>:</td><td><input type="text" id="artist_id" onfocus="focus_action()" /></td> <td id="wakelock_control" style="visibility:hidden"><input onclick="wakelock_action()" type="checkbox" checked id="wakelock_checkbox" /> <label for="wakelock_checkbox" id="wakelock_label">WakeLock</label></td></tr> <tr><td><label for="station_id">Station</label></td><td>:</td><td><input type="text" id="station_id" onfocus="focus_action()" /></td> <td id="playlock_control" style="visibility:hidden"><input onclick="wakelock_action()" type="checkbox" checked id="playlock_checkbox" /> <label for="playlock_checkbox" id="playlock_label">PlayLock</label></td></tr> <tr><td><label for="song_id">Song ID</label></td><td>:</td><td><input type="text" id="song_id" onfocus="focus_action()" /></td> <td><input id="link_button" type="button" value="Link" onclick="link_action()" style="visibility:hidden" /> <span id="wakelock_status" style="visibility:hidden"> · ·</span></td></tr> </table> </form> <form> <table> <tr><td style="color:black">Album Art</td><td style="color:black">:</td><td><img id="album_art" /></td></tr> <tr><td>Artist Name</td><td>:</td><td><span id="artist_name"></span></td></tr> <tr><td>Song Title</td><td>:</td><td><span id="song_name"></span></td></tr> <tr><td>Artist ID</td><td>:</td><td><span id="artist_usd"></span></td></tr> <tr><td>Station</td><td>:</td><td><span id="station_usd"></span></td></tr> <tr><td>Song ID</td><td>:</td><td><span id="song_usd"></span> <input id="play" name="play" type="button" onclick="play_action()" value="play" style="visibility:hidden" /></td></tr> <tr><td>mp3 m4a</td><td>:</td><td><a id="mp3_m4a_url_a" target="_blank" rel="nofollow noopener noreferrer"><span id="mp3_m4a_url"></span></a></td></tr> <tr id="yt_row"><td>yt</td><td>:</td><td><a id="yt_url_a" target="_blank" rel="nofollow noopener noreferrer"><span id="yt_url"></span></a> <input id="preview" name="preview" type="button" onclick="preview_action()" value="preview" style="visibility:hidden" /></td></tr> </table> </form> <form> <table> <tr style="display:none" id="audiorow"><td width="350" height="100"><audio playsinline controls preload="none" id="audioplayer" style="visibility:hidden" title="···"></audio></td></tr> <tr style="display:none" id="videorow"><td><video playsinline controls preload="none" id="videoplayer" style="visibility:hidden" title="···"></video></td></tr> <tr><td><input id="stop" name="stop" type="button" onclick="stop_action()" value="stop" style="visibility:hidden" /> <span id="timer" style="visibility:hidden"> <span id="timer0">.</span> <span id="timer1">.</span> <span id="timer2">.</span> <span id="timer3">.</span> <span id="timer4">.</span> </span></td></tr> <tr style="display:none"><td><audio loop playsinline preload="metadata" id="timeloop" title="···"></audio></td></tr> </table> </form> <script> var getElementById__jango_site = document.getElementById("jango_site"); var getElementById__noadradio_site = document.getElementById("noadradio_site"); var getElementById__artist = document.getElementById("artist"); var getElementById__search_button = document.getElementById("search_button"); var getElementById__song = document.getElementById("song"); var getElementById__reset_button = document.getElementById("reset_button"); var getElementById__error = document.getElementById("error"); var getElementById__artist_id = document.getElementById("artist_id"); var getElementById__wakelock_control = document.getElementById("wakelock_control"); var getElementById__wakelock_checkbox = document.getElementById("wakelock_checkbox"); var getElementById__wakelock_label = document.getElementById("wakelock_label"); var getElementById__station_id = document.getElementById("station_id"); var getElementById__wakelock_status = document.getElementById("wakelock_status"); var getElementById__playlock_control = document.getElementById("playlock_control"); var getElementById__playlock_checkbox = document.getElementById("playlock_checkbox"); var getElementById__playlock_label = document.getElementById("playlock_label"); var getElementById__song_id = document.getElementById("song_id"); var getElementById__link_button = document.getElementById("link_button"); var getElementById__select = document.getElementById("select"); var getElementById__low = document.getElementById("low"); var getElementById__medium = document.getElementById("medium"); var getElementById__high = document.getElementById("high"); var getElementById__album_art = document.getElementById("album_art"); var getElementById__artist_name = document.getElementById("artist_name"); var getElementById__song_name = document.getElementById("song_name"); var getElementById__station_usd = document.getElementById("station_usd"); var getElementById__artist_usd = document.getElementById("artist_usd"); var getElementById__song_usd = document.getElementById("song_usd"); var getElementById__play = document.getElementById("play"); var getElementById__mp3_m4a_url = document.getElementById("mp3_m4a_url"); var getElementById__mp3_m4a_url_a = document.getElementById("mp3_m4a_url_a"); var getElementById__yt_row = document.getElementById("yt_row"); var getElementById__yt_url = document.getElementById("yt_url"); var getElementById__yt_url_a = document.getElementById("yt_url_a"); var getElementById__preview = document.getElementById("preview"); var getElementById__audiorow = document.getElementById("audiorow"); var getElementById__audioplayer = document.getElementById("audioplayer"); var getElementById__player = document.getElementById("audioplayer"); var getElementById__videorow = document.getElementById("videorow"); var getElementById__videoplayer = document.getElementById("videoplayer"); var getElementById__stop = document.getElementById("stop"); var getElementById__timer = document.getElementById("timer"); var getElementById__timer0 = document.getElementById("timer0"); var getElementById__timer1 = document.getElementById("timer1"); var getElementById__timer2 = document.getElementById("timer2"); var getElementById__timer3 = document.getElementById("timer3"); var getElementById__timer4 = document.getElementById("timer4"); var getElementById__timeloop = document.getElementById("timeloop"); function fill_form () { try { var quetrystring = document.location.search.substring(1).split("&"); for (var quetry in quetrystring) { var qu = quetrystring[quetry].split("="); if ((qu[0][0] == "t") || (qu[0][1] == "t")) { getElementById__station_id.value = decodeURIComponent(qu[1]); } else { if (qu[0][0] == "i") { getElementById__song_id.value = decodeURIComponent(qu[1]); } else { if (qu[0][0] == "s") { if (qu[0].indexOf("id") > 0) { getElementById__song_id.value = decodeURIComponent(qu[1]); } else { getElementById__song.value = decodeURIComponent(qu[1]); } } else if (qu[0][0] == "a") { if (qu[0].indexOf("id") > 0) { getElementById__artist_id.value = decodeURIComponent(qu[1]); } else { getElementById__artist.value = decodeURIComponent(qu[1]); } } } } } } catch (err) { } } fill_form(); var jango_cookie; var noadradio_cookie; var site_cookie; var site = "jango"; var cancel_search = 0; var jango_station = 263448187; var noadradio_station = 263448187; var station = 263448187; function site_action () { getElementById__error.style.visibility = "hidden"; getElementById__jango_site.disabled = false; getElementById__noadradio_site.disabled = false; if (getElementById__jango_site.checked) { site = "jango"; getElementById__low.text = "Low Quality"; getElementById__medium.text = "Medium Quality"; getElementById__high.text = "High Quality"; getElementById__search_button.value = "Search Jango"; getElementById__reset_button.value = "Reset"; getElementById__link_button.value = "Link"; getElementById__play.value = "play"; getElementById__preview.value = "preview"; getElementById__wakelock_label.innerHTML = "WakeLock"; getElementById__playlock_label.innerHTML = "PlayLock"; getElementById__stop.value = "stop"; site_cookie = jango_cookie; station = jango_station; getElementById__search_button.disabled = false; } if (getElementById__noadradio_site.checked) { if (0) site = "noadradio"; if (1) site = "jango"; getElementById__low.text = "Bogus Sound"; getElementById__medium.text = "Good Sound"; getElementById__high.text = "Excellent Sound"; getElementById__search_button.value = "Soap NoAdRadio"; getElementById__reset_button.value = "Cleanse"; getElementById__link_button.value = "Rope"; getElementById__play.value = "spout"; getElementById__preview.value = "snoop"; getElementById__wakelock_label.innerHTML = "NoSleep"; getElementById__playlock_label.innerHTML = "NoPause"; getElementById__stop.value = "drain"; if (0) site_cookie = noadradio_cookie; if (0) station = noadradio_station; if (1) site_cookie = jango_cookie; if (1) station = jango_station; getElementById__search_button.disabled = false; } } var artist_name_display = ""; var song_name_display = ""; var station_usd_display = ""; var artist_usd_display = ""; var song_usd_display = ""; var mp3_m4a_url_display = ""; var art_display = ""; var yt_url_display = ""; var yt_url_d = ""; function request_stream_info(failo) { timeNow = "loading"; if (!(valid_cookie(site_cookie))) { if (failo) error_action(); else request_station(0); return; } getElementById__error.innerHTML = " ···"; var my_cancel = ++cancel_search; xdRaid.setURL("https://www."+site+".com/streams/info").deleteCookies().addCookie(site_cookie).only_headers(false).get( function(response) { if (my_cancel != cancel_search) return; get_cookie(response.headers["Set-Cookie"]); if ((!(valid_cookie(response.headers["Set-Cookie"]))) || (!(response.contents.url))) { if (failo) error_action(); else { getElementById__error.innerHTML += "×"; if (!(document.hidden)) setTimeout(function(){request_station(0)}, 3000); else {request_station(0)}; } return; } artist_name_display = response.contents.artist; song_name_display = response.contents.song; if (response.contents.station_id) { station = response.contents.station_id; if (site == "jango") jango_station = station; else noadradio_station = station; } station_usd_display = station; if (response.contents.station) station_usd_display += " : " + response.contents.station; artist_usd_display = response.contents.artist_id; song_usd_display = response.contents.song_id; mp3_m4a_url_display = (1?("ht"+"tps"+":"):"")+response.contents.url; art_display = response.contents.album_art; if (response.contents.video_id) yt_url_display = (1?("ht"+"tps"+":"):"")+"/"+"/"+"youtu"+"."+"be"+"/"+response.contents.video_id; else yt_url_display = ""; if (response.contents.video_id) yt_url_d = response.contents.video_id; else yt_url_d = ""; show_results(true); if (getElementById__player.style.visibility != "hidden") play_action(search_while_playing_video); } ).deleteCookies(); } function request_artist(someurl,failo) { timeNow = "loading"; getElementById__error.innerHTML = " ·."; if (failo) getElementById__error.innerHTML += "×"; var my_cancel = ++cancel_search; xdRaid.setURL(someurl).deleteCookies().addCookie(site_cookie).only_headers(true).get( function(response) { if (my_cancel != cancel_search) return; get_cookie(response.headers["Set-Cookie"]); if (response.contents.match(/"\/stations\/([0-9]+)"/)) { station = response.contents.match(/"\/stations\/([0-9]+)"/)[1]; if (site == "jango") jango_station = station; else noadradio_station = station; } if ((!(failo))&&(response.headers["Location"])) request_artist(response.headers["Location"],true); else request_stream_info(); } ).deleteCookies(); } function request_artist_name(song) { timeNow = "loading"; getElementById__error.innerHTML = " ."; var my_cancel = ++cancel_search; xdRaid.setURL("https://www."+site+".com/songs/search?search_type=song&search="+encodeURIComponent(song)); xdRaid.only_headers(false).get( function(response) { if (my_cancel != cancel_search) return; get_cookie(response.headers["Set-Cookie"]); if (response.contents.match(/ href="\/music\/([^/">]+)[/"]([^/">]+)?/)) { if (response.contents.match(/ href="\/music\/([^/">]+)[/"]([^/">]+)?/)[2]) { request_song_title(response.contents.match(/ href="\/music\/([^/">]+)[/"]([^/">]+)?/)[1],response.contents.match(/ href="\/music\/([^/">]+)[/"]([^/">]+)?/)[2]); } else { request_song_title(response.contents.match(/ href="\/music\/([^/">]+)[/"]([^/">]+)?/)[1],song); } } else request_stream_info(); } ); } function get_cookie(set_cookie) { if (typeof set_cookie != "string") { for (var the_cookie in set_cookie) { get_cookie(set_cookie[the_cookie]); } } else { if ( /_jango_s=/.test(set_cookie) ) jango_cookie = set_cookie; else if ( /_noadradio_s=/.test(set_cookie) ) noadradio_cookie = set_cookie; if (site == "jango") site_cookie = jango_cookie; else site_cookie = noadradio_cookie; } } function valid_cookie(set_cookie) { if (typeof set_cookie != "string") { for (var the_cookie in set_cookie) { if (valid_cookie(set_cookie[the_cookie])) { return true; } } } else { if ((site == "jango") && ( /_jango_s=/.test(set_cookie) )) return true; if ((site == "noadradio") && ( /_noadradio_s=/.test(set_cookie) )) return true; } return false; } function request_station (songid) { timeNow = "loading"; getElementById__error.innerHTML = " ··"; var my_cancel = ++cancel_search; xdRaid.setURL("https://www."+site+".com/stations/"+station+"/tunein"+(songid&&songid.match(/[0-9]+/)?"?song_id="+songid.match(/[0-9]+/):"")); xdRaid.only_headers(true).get( function(response) { if (my_cancel != cancel_search) return; get_cookie(response.headers["Set-Cookie"]); if (!(valid_cookie(response.headers["Set-Cookie"]))) if (station == 1) { error_action(); return } else { station = 1; if (site == "jango") jango_station = 1; else noadradio_station = 1; getElementById__error.innerHTML += "×"; if (!(document.hidden)) setTimeout(function(){request_station(songid)}, 3000); else {request_station(songid)}; return; } request_stream_info(0==songid); } ); } function request_genre (genre, songid) { timeNow = "loading"; getElementById__error.innerHTML = " :"; var my_cancel = ++cancel_search; xdRaid.setURL("https://www."+site+".com/artists/jsearch?search_type=all&term="+encodeURIComponent(genre)); xdRaid.only_headers(false).xmlhttprequest(true).get( function(response) { if (my_cancel != cancel_search) return; if (response.contents[0]) { if (response.contents[0].station_id) { station = response.contents[0].station_id; if (site == "jango") jango_station = station; else noadradio_station = station; } } request_station(songid); } ).xmlhttprequest(false); } function request_artist_id (artistid) { timeNow = "loading"; getElementById__error.innerHTML = " .."; var my_cancel = ++cancel_search; xdRaid.setURL("https://www."+site+".com/artists/"+(artistid.match(/[0-9]+/))); xdRaid.only_headers(true).get( function(response) { if (my_cancel != cancel_search) return; get_cookie(response.headers["Set-Cookie"]); if (response.headers["Location"]) request_artist(response.headers["Location"]); else request_stream_info(); } ); } function request_song_title (artist, song) { timeNow = "loading"; getElementById__error.innerHTML = " ·"; var my_cancel = ++cancel_search; xdRaid.setURL("https://www."+site+".com/music"+(artist?"/"+encodeURIComponent(artist.replace(/\//g,"%2F"))+(song?"/"+encodeURIComponent(song.replace(/\//g,"%2F")):""):"")); xdRaid.only_headers(true).get( function(response) { if (my_cancel != cancel_search) return; get_cookie(response.headers["Set-Cookie"]); if (response.headers["Location"]) request_artist(response.headers["Location"]); else request_stream_info(); } ); } var xdRaid; function request_song (artist, song, stationid, artistid, songid) { if (!xdRaid) xdRaid = new xdRequest(); if (stationid.match(/^[\s.]*[\d]+[\s.]*$/)) { station = stationid.match(/[\d]+/); if (site == "jango") jango_station = station; else noadradio_station = station; request_station(songid); } else if (stationid.match(/\/[\d]+/)) { station = stationid.match(/\/[\d]+/); if (site == "jango") jango_station = station; else noadradio_station = station; request_station(songid); } else if (stationid) { if (songid.match(/[0-9]+/)) request_genre(stationid, songid); else request_genre(stationid); } else if (songid.match(/[0-9]+/)) request_station(songid); else if (artistid.match(/[0-9]+/)) request_artist_id(artistid); else if (artist) request_song_title(artist, song); else if (song) request_artist_name(song); else request_stream_info(); } function show_results (whether) { getElementById__jango_site.disabled = !whether; getElementById__noadradio_site.disabled = !whether; getElementById__search_button.disabled = !whether; if (whether) { getElementById__error.style.visibility = "hidden"; getElementById__play.style.visibility = "visible"; getElementById__link_button.style.visibility = "visible"; getElementById__album_art.style = "min-height:90px;max-height:90px;height:90px"; getElementById__album_art.src = art_display; getElementById__album_art.alt = artist_name_display; getElementById__album_art.title = artist_name_display; getElementById__artist_name.innerHTML = artist_name_display; getElementById__song_name.innerHTML = song_name_display; var tit = song_name_display + decodeURIComponent("%20%C2%B7%20") + artist_name_display + decodeURIComponent("%20%E2%80%A2%20Jango%20Raid"); document.title = tit; getElementById__audioplayer.title = tit; getElementById__videoplayer.title = tit; getElementById__timeloop.title = tit; if ((noSleep)) { if ((noSleep.noSleepVideo)) { noSleep.noSleepVideo.title = tit; if ((navigator.userAgent.match(/android/gi))) { getElementById__timeloop.src = getElementById__timeloop.currentSrc; } } } getElementById__station_usd.innerHTML = station_usd_display; getElementById__artist_usd.innerHTML = artist_usd_display; getElementById__song_usd.innerHTML = song_usd_display; switch (getElementById__select.selectedIndex) { case 0: mp3_m4a_url_display = mp3_m4a_url_display.replace(/m4a-64.jango.com/,"m4a-24.jango.com").replace(/mp3-128.jango.com/,"mp3-64.jango.com"); mp3_m4a_url_display = mp3_m4a_url_display.replace(/ra-m4a-64.cdn107.com/,"cd09.24.aac.radioairplay.com").replace(/ra-mp3-128.cdn107.com/,"cd09.64.music.radioairplay.com").replace(/m4a-64.cdn107.com/,"cd09.24.aac.jango.com").replace(/mp3-128.cdn107.com/,"cd09.64.music.static.jango.com"); break; case 1: mp3_m4a_url_display = mp3_m4a_url_display.replace(/m4a-64.jango.com/,"m4a-48.jango.com").replace(/mp3-128.jango.com/,"mp3-96.jango.com"); mp3_m4a_url_display = mp3_m4a_url_display.replace(/ra-m4a-64.cdn107.com/,"cd09.48.aac.radioairplay.com").replace(/ra-mp3-128.cdn107.com/,"cd09.96.music.radioairplay.com").replace(/m4a-64.cdn107.com/,"cd09.48.aac.jango.com").replace(/mp3-128.cdn107.com/,"cd09.96.music.static.jango.com"); break; case 2: mp3_m4a_url_display = mp3_m4a_url_display.replace(/ra-m4a-64.cdn107.com/,"cd09.64.aac.radioairplay.com").replace(/ra-mp3-128.cdn107.com/,"cd09.128.music.radioairplay.com").replace(/m4a-64.cdn107.com/,"cd09.64.aac.jango.com").replace(/mp3-128.cdn107.com/,"cd09.128.music.static.jango.com"); } getElementById__mp3_m4a_url.innerHTML = mp3_m4a_url_display; getElementById__mp3_m4a_url_a.href = mp3_m4a_url_display; getElementById__yt_url.innerHTML = yt_url_display; getElementById__yt_url_a.href = yt_url_display; if (yt_url_display) getElementById__yt_row.style.visibility = "visible"; else getElementById__yt_row.style.visibility = "hidden"; if (yt_url_display) getElementById__preview.style.visibility = "visible"; else getElementById__preview.style.visibility = "hidden"; } else { getElementById__error.innerHTML = " "; getElementById__error.style.visibility = "visible"; } } function show_audio_metadata() { navigator.mediaSession.metadata = new MediaMetadata({ title:song_name_display,artist:artist_name_display,artwork:[{sizes:"320x180",src:art_display}]}); } function show_video_metadata() { navigator.mediaSession.metadata = new MediaMetadata({ title:song_name_display,artist:artist_name_display,artwork:[{sizes:"320x180",src:"//i.ytimg.com/vi/"+yt_url_d+"/mqdefault.jpg"}]}); } function mediasession_progress() { if (getElementById__player.seekable.length) { navigator.mediaSession.setPositionState({ duration: getElementById__player.duration, playbackRate: Number.MIN_VALUE, position: getElementById__player.currentTime } ); } } var playersource; var playing_video; var search_while_playing_video; function search_action(skip) { timeNow = stutterFix = stutterNow = undefined; stutterF0x = 0; show_results(false); search_while_playing_video = skip ? false : playing_video; if (window.stop) window.stop(); if (document.execCommand) document.execCommand("stop"); window.onabort = error_action; window.onerror = error_action; if (skip) request_stream_info(); else request_song(getElementById__artist.value, getElementById__song.value, getElementById__station_id.value, getElementById__artist_id.value, getElementById__song_id.value); return false; } function reset_action() { if (getElementById__error.style.visibility == "hidden") { getElementById__artist.value = ""; getElementById__song.value = ""; getElementById__station_id.value = ""; getElementById__artist_id.value = ""; getElementById__song_id.value = ""; } else { ++cancel_search; if (window.stop) window.stop(); if (document.execCommand) document.execCommand("stop"); window.onabort = error_action; window.onerror = error_action; site_action(); } return false; } function link_action () { getElementById__song_id.value=""; getElementById__song_id.value=document.location.href.split("#")[0].split("?")[0]+"?song_id="+getElementById__song_usd.innerHTML.match(/[0-9]+/)+"&t="+getElementById__station_usd.innerHTML.match(/[0-9]+/)+"&a="+encodeURIComponent(getElementById__artist_name.innerHTML.replace(/</gi,"<").replace(/>/gi,">").replace(/&/gi,"&")).replace(/%20/g,"_")+"&s="+encodeURIComponent(getElementById__song_name.innerHTML.replace(/</gi,"<").replace(/>/gi,">").replace(/&/gi,"&")).replace(/%20/g,"_"); } var myInterval; var stutterF0x = 0; var stutterFox; var stutterFix; var stutterNow; var timeThen; var timeNow; function interval_check() { if (new Date().getTime() > sched_player_check) player_check(); } function player_check() { sched_player_check = new Date().getTime() + 6950; if ((getElementById__player.style.visibility != "hidden")) { getElementById__timer.style.visibility = "visible"; if ((getElementById__player.networkState == 3) || (((getElementById__player.ended))) || (!(getElementById__player.paused))) { timeThen = timeNow; if (undefined == timeNow) timeNow = "loading"; else if ("loading" == timeNow) timeNow = "defined"; else timeNow = getElementById__player.currentTime; } else if (((getElementById__player.paused))) { timeThen = timeNow = stutterFix = stutterNow = undefined; stutterF0x = 0; } if (getElementById__timeloop.ended || getElementById__timeloop.paused) getElementById__timer0.innerHTML = "◊"; else if (((timeloop_S.src.match(/data:audio\/mpeg;base64,/)))) getElementById__timer0.innerHTML = "♦"; else getElementById__timer0.innerHTML = "♥"; getElementById__timer1.innerHTML = undefined != timeThen ? ( timeThen != "loading" ? ( timeThen != "defined" ? timeThen.toFixed(3) : "⋮" ) : ":" ) : "."; getElementById__timer2.innerHTML = undefined != timeNow ? ( timeNow != "loading" ? ( timeNow != "defined" ? timeNow.toFixed(3) : "⋮" ) : ":" ) : "."; getElementById__timer3.innerHTML = "-"; getElementById__timer4.innerHTML = "¤¤¤"; if ((timeThen == "defined")) { if ((getElementById__player.networkState == 3)) { ended_action(); } else if ((getElementById__player.ended)) { ended_action(); stutterNow = true; getElementById__player.loop = (!(playing_video)); getElementById__player.play(); } } else if ((undefined != timeThen) && (timeThen != "defined") && (timeThen != "loading")) { if ((getElementById__player.networkState == 3)) { ended_action(); } else if ((getElementById__player.ended)) { ended_action(); stutterNow = true; getElementById__player.loop = (!(playing_video)); getElementById__player.play(); } else if (!(getElementById__player.paused)) { var timeDiff = Math.abs(timeNow - timeThen); getElementById__timer3.innerHTML = timeDiff.toFixed(3); stutterFox = stutterFix; stutterFix = stutterNow; stutterNow = timeDiff < 5; getElementById__timer4.innerHTML = (stutterNow ? "×" : "¤") + (stutterFix ? "×" : "¤") + (stutterFox ? "×" : "¤"); if (stutterNow) { if (Math.abs(getElementById__player.duration - getElementById__player.currentTime) < 7) { getElementById__timer4.innerHTML += " »"; try { timeNow = getElementById__player.currentTime = 0; } catch (err) { } ended_action(); } else if (!(stutterFix)) { if ((stutterFox)) { getElementById__timer4.innerHTML += " »"; ended_action(); } else if (timeThen > 0) { getElementById__timer4.innerHTML += " «"; try { timeNow = getElementById__player.currentTime -= 7.007 - timeDiff; } catch (err) { } try { if (timeNow < 0) timeNow = getElementById__player.currentTime = 0; } catch (err) { } } } else if (timeDiff < 1) { getElementById__timer4.innerHTML += " »"; ended_action(); } else { getElementById__timer4.innerHTML += " ‹"; try { timeNow = getElementById__player.currentTime -= 0.001; } catch (err) { } } } else if ((timeDiff < 6) || (stutterF0x = 0)) { stutterF0x++; if ((Math.abs(getElementById__player.duration - getElementById__player.currentTime) < 7) || (stutterF0x > 3)) { getElementById__timer4.innerHTML += " »"; try { timeNow = getElementById__player.currentTime = 0; } catch (err) { } ended_action(); } else { for (var i = 0; i < stutterF0x; ++i) getElementById__timer4.innerHTML += " ‹"; try { timeNow = getElementById__player.currentTime -= 0.001; } catch (err) { } } } } } if ((noSleep)) { if ((noSleep.noSleepVideo)) { if (getElementById__playlock_checkbox.checked) { if ((navigator.userAgent.match(/android/gi))) { if (!(getElementById__timeloop.duration > 0)) { getElementById__timeloop.removeAttribute("src"); getElementById__timeloop.removeChild(timeloop_S); timeloop_S = document.createElement("source"); getElementById__timeloop.appendChild(timeloop_S); timeloop_S.type = "audio/mpeg"; timeloop_S.src = "//ox-proxy.gq/timeloop.mp3"; getElementById__timeloop.load(); getElementById__timeloop.play(); } } } } } } wakelock_action(); } var firstly = true; function play_action(v) { if (!(myInterval)) myInterval = setInterval(interval_check, 1000); if (!(sanDimasRunning) || (audioContext == false)) { if (getElementById__playlock_checkbox.checked) { if ((navigator.userAgent.match(/cpu.*os (12_[2-9]|1[34]_[0-9]).*applewebkit.*mobile/i))) { sanDimasRunning = true; sanDimas_setup(); if ((navigator.userAgent.match(/cpu.*os (12_[2-9]|13_[0-9]).*applewebkit.*mobile/i))) { getElementById__timeloop.play(); getElementById__timeloop.pause(); } } } } stop_action(true); getElementById__stop.style.visibility = "visible"; getElementById__wakelock_control.style.visibility = "visible"; getElementById__wakelock_status.style.visibility = "visible"; getElementById__playlock_control.style.visibility = "visible"; playersource = document.createElement("source"); if (v && getElementById__yt_url.innerHTML) { getElementById__audiorow.style.display = "none"; getElementById__videorow.style.display = ""; getElementById__audioplayer.style.visibility = "hidden"; getElementById__audioplayer.pause(); getElementById__player = getElementById__videoplayer; playing_video = true; playersource.type = "video/mp4"; playersource.src = "//ox-proxy.gq/youtube/"+getElementById__yt_url.innerHTML.match(/[a-zA-Z0-9_-]{11}/)+".mp4"; } else { getElementById__audiorow.style.display = ""; getElementById__videorow.style.display = "none"; getElementById__videoplayer.style.visibility = "hidden"; getElementById__videoplayer.pause(); getElementById__player = getElementById__audioplayer; playing_video = false; playersource.type = "audio/mpeg"; playersource.src = getElementById__mp3_m4a_url.innerHTML; } getElementById__player.appendChild(playersource); getElementById__player.style.visibility = "visible"; getElementById__player.loop = (!(playing_video)); getElementById__player.pause(); getElementById__player.load(); getElementById__player.play(); sched_player_check = new Date().getTime() + 6950; if ((navigator.userAgent.match(/cpu.*os (12_[2-9]|1[34]_[0-9]).*applewebkit.*mobile/i))) firstly = false; wakelock_action(firstly); firstly = false; if (audioContext == false) sanDimas_setup(); } function preview_action() { if ((getElementById__stop.style.visibility != "hidden")) stop_action(); play_action(true); } var noSleepEnabled; var noSleepAppended; var sanDimasRunning; function wakelock_action(really) { if ((noSleep)) { if ((noSleep.noSleepVideo)) { if ((noSleep.noSleepVideo.networkState == 3) || (noSleep.noSleepVideo.paused)) { getElementById__wakelock_status.innerHTML = " ◊"; } else { getElementById__wakelock_status.innerHTML = " ♦"; } } else { if ((noSleep.noSleepTimer)) { getElementById__wakelock_status.innerHTML = " ♥"; window.onabort = undefined; window.onerror = undefined; } else { getElementById__wakelock_status.innerHTML = " ◊"; } } } else { if ((noSleep == false)) { getElementById__wakelock_status.innerHTML = " ⊗"; } else { getElementById__wakelock_status.innerHTML = " ×"; } } if (really || getElementById__wakelock_checkbox.checked) { if (!(noSleepEnabled)) { noSleepEnabled = true; if ((noSleep)) { if ((noSleep.noSleepVideo)) { if (!(noSleepAppended)) { noSleepAppended = true; noSleep.noSleepVideo.height = 0; noSleep.noSleepVideo.width = 0; noSleep.noSleepVideo.style.visibility = "hidden"; noSleep.noSleepVideo.addEventListener("webkitcurrentplaybacktargetiswirelesschanged", webkitcurrentplaybacktargetiswirelesschanged_action); getElementById__audioplayer.addEventListener("webkitcurrentplaybacktargetiswirelesschanged", webkitcurrentplaybacktargetiswirelesschanged_action); getElementById__videoplayer.addEventListener("webkitcurrentplaybacktargetiswirelesschanged", webkitcurrentplaybacktargetiswirelesschanged_action); document.body.appendChild(noSleep.noSleepVideo); } } if (!(getElementById__player.webkitCurrentPlaybackTargetIsWireless)) noSleep.enable(22000); } } if ((noSleep)) { if ((noSleep.noSleepVideo)) { if ((document.hidden)) { if ((noSleep.noSleepVideo.networkState != 3) && (!(noSleep.noSleepVideo.paused))) { noSleep.noSleepVideo.pause(); } } else { if ((noSleep.noSleepVideo.networkState == 3) || (noSleep.noSleepVideo.paused)) { if (!(playing_video) || (getElementById__player.currentTime == 0)) { try { noSleep.noSleepVideo.currentTime = 0; } catch (err) { } if (!(getElementById__player.webkitCurrentPlaybackTargetIsWireless)) noSleep.noSleepVideo.play(); } } } } } } else { if ((noSleepEnabled)) { if ((noSleep)) noSleep.disable(); noSleepEnabled = false; window.onabort = error_action; window.onerror = error_action; } } if (getElementById__playlock_checkbox.checked) { if (((getElementById__player.style.visibility != "hidden"))) { if (((getElementById__player.networkState != 3))) { if (!(getElementById__player.ended)) { if ((getElementById__player.paused)) { timeNow = stutterFix = stutterNow = undefined; stutterF0x = 0; getElementById__player.play(); } } } } } if (((getElementById__player.style.visibility != "hidden"))) { if ((noSleep)) { if ((noSleep.noSleepVideo)) { if ((navigator.userAgent.match(/android/gi))) { if (getElementById__playlock_checkbox.checked) { if (!(sanDimasRunning)) { sanDimasRunning = true; getElementById__timeloop.addEventListener("timeupdate", timeloop_check); getElementById__timeloop.addEventListener("timeupdate", timeloop_spin); getElementById__timeloop.addEventListener("pause", timeloop_pause); } getElementById__timeloop.play(); } else { getElementById__timeloop.pause(); } } else { if (getElementById__playlock_checkbox.checked) { if (!(sanDimasRunning) || (audioContext == false)) { sanDimasRunning = true; sanDimas_setup(); } else { statechange_action(); } } else { sanDimas_destroy(); } } } } } } var audioContext, audioBuffer, tone, gain; var sanDimas; function sanDimas_setup () { if (window.AudioContext || window.webkitAudioContext) { if (!audioContext) audioContext = new (window.AudioContext || window.webkitAudioContext)(); if (audioContext.resume) audioContext.resume(); audioContext.onstatechange = statechange_action; var channels = 2; var frameCount = audioContext.sampleRate * 3; audioBuffer = audioContext.createBuffer(channels, frameCount, audioContext.sampleRate); for (var channel = 0; channel < channels; channel++) { var nowBuffering = audioBuffer.getChannelData(channel); for (var i = 0; i < frameCount; i++) { nowBuffering[i] = 0; } } gain = audioContext.createGain(); gain.gain.value = 0; gain.connect(audioContext.destination); tone = audioContext.createOscillator(); tone.connect(gain); tone.frequency.value = 2600; tone.start(); sanDimas = audioContext.createBufferSource(); sanDimas.buffer = audioBuffer; sanDimas.connect(audioContext.destination); sanDimas.loop = true; sanDimas.start(); } } function sanDimas_destroy () { if (audioContext) { if (audioContext.close) { audioContext.close(); audioContext = false; } } } function statechange_action () { if (audioContext) { if (audioContext.state) { if (audioContext.state == "running") getElementById__timer0.innerHTML = "∞"; else getElementById__timer0.innerHTML = "~"; if ((audioContext.state == "interrupted") || (audioContext.state == "suspended")) { audioContext.resume(); } } } } function webkitcurrentplaybacktargetiswirelesschanged_action() { noSleep.noSleepVideo.pause(); } var has_played_first; var sched_player_check = 0; function timeupdate_action() { if (!(playing_video)) { if (!(getElementById__videoplayer.paused)) { getElementById__videoplayer.pause(); } } if (((getElementById__player.played.length))) { if (!(getElementById__player.paused)) { if (((getElementById__player.loop))) { if (((getElementById__player.currentTime > getElementById__player.duration - 1))) { getElementById__player.removeAttribute("loop"); } } if (!(has_played_first)) { if (((getElementById__player.currentTime > 1))) { has_played_first = true; } } else { if (!(stutterNow)) { if (((getElementById__player.currentTime > getElementById__player.duration))) { stop_action(true); ended_action(); } else if (((getElementById__player.currentTime < 1))) { has_played_first = false; has_played_through = true; ended_action(); } } } } } } function timeloop_check() { if (sched_player_check) { if (new Date().getTime() > sched_player_check) player_check(); } } function timeloop_spin() { if (((getElementById__player.style.visibility != "hidden"))) { if (getElementById__playlock_checkbox.checked) { if (getElementById__timeloop.currentTime < 0.25) { try { getElementById__timeloop.currentTime = 0.75; } catch (err) { } getElementById__timeloop.play(); } } } } function timeloop_pause() { if (((getElementById__player.style.visibility != "hidden"))) { if (getElementById__playlock_checkbox.checked) { getElementById__timeloop.play(); } } } function stop_action(stay) { timeNow = stutterFix = stutterNow = undefined; stutterF0x = 0; if (!(stay)) { firstly = true; getElementById__player.style.visibility = "hidden"; getElementById__stop.style.visibility = "hidden"; getElementById__timer.style.visibility = "hidden"; if ((noSleep)) { if ((noSleep.noSleepVideo)) { try { getElementById__timeloop.currentTime = 0; } catch (err) { } getElementById__timeloop.pause(); sanDimas_destroy(); if ((navigator.userAgent.match(/cpu.*os (12_[2-9]|1[34]_[0-9]).*applewebkit.*mobile/i))) { noSleep.noSleepVideo.muted = true; noSleep.noSleepVideo.muted = false; getElementById__timeloop.muted = true; getElementById__timeloop.muted = false; } } } } getElementById__player.pause(); getElementById__player.loop = true; has_played_first = false; has_played_through = false; if (playersource) { getElementById__player.removeChild(playersource); playersource = undefined; if (playing_video && (navigator.userAgent.match(/cpu.*os (12_[2-9]|1[34]_[0-9]).*applewebkit.*mobile/i))) { stay = false; } else { getElementById__player.load(); } } playing_video = false; if (stay) getElementById__player.play(); } var has_played_through; function ended_action () { if ((noSleep)) { if ((noSleep.noSleepVideo)) { if ((navigator.userAgent.match(/cpu.*os (12_[2-9]|1[34]_[0-9]).*applewebkit.*mobile/i))) { noSleep.noSleepVideo.muted = true; getElementById__timeloop.muted = true; } } } has_played_through = has_played_through || getElementById__player.ended; if (((getElementById__player.networkState == 3)) || (((undefined != timeThen) && (timeThen != "defined") && (timeThen != "loading"))) || (((document.hidden)))) { timeNow = stutterFix = stutterNow = undefined; stutterF0x = 0; show_results(false); search_while_playing_video = false; if (window.stop) window.stop(); if (document.execCommand) document.execCommand("stop"); window.onabort = error_action; window.onerror = error_action; if (!(has_played_through)) stop_action(true); request_stream_info(); } else if ((has_played_through)) { stutterNow = true; getElementById__player.loop = (!(playing_video)); getElementById__player.play(); } } function error_action (message) { if (!(/ResizeObserver/.test(message))) { getElementById__error.innerHTML += " Χ"; getElementById__error.style.visibility = "visible"; getElementById__jango_site.disabled = false; getElementById__noadradio_site.disabled = false; getElementById__search_button.disabled = true; } } </script> <script src="//xdraid.gq/xdrequest.js"></script> <script src="//xdraid.gq/nosleep.js"></script> <script> var noSleep; if (!(navigator.userAgent.match(/tv|omi\//gi))) { noSleep = new NoSleep(); if (!(noSleep)) noSleep = false; } if (!(navigator.userAgent.match(/android/gi))) getElementById__wakelock_checkbox.checked = false; var timeloop_A = "//ox-proxy.gq/timeloop.mp3"; timeloop_A = "data:audio/mpeg;base64,SUQzAgAAAAARHVRQMQAAFgBBbmRyZXcgSm9obiBIYXJkd2ljawBUQ00AACcATm9uZSAoanVzdCBkaWdpdGFsbHkgY3JlYXRlZCBzaWxlbmNlKQBUQUwAAAsAU2lsZW50IENEAFRZRQAABgAyMDAzAENPTQAAEABlbmdpVHVuUEdBUAAwAABURU4AABEAaVR1bmVzIHY3LjMuMi42AENPTQAAaABlbmdpVHVuTk9STQAgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMzQgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAAQ09NAACCAGVuZ2lUdW5TTVBCACAwMDAwMDAwMCAwMDAwMDIxMCAwMDAwMDY5RiAwMDAwMDAwMDAwMDAyQjExIDAwMDAwMDAwIDAwMDAwMzBGIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwAFRUMgAADgBTaWxlbmNlIDAxIHM"; for (var i = 0; i < 2390; ++i) timeloop_A += "A"; timeloop_A += "P/jEMAAAAABvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4xDAJwAAAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+MQwE4AAAG8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/jEsB1AAABvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+MQwJ0AAAG8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/jEMDEAAABvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4xDA6wAAAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+MSwP8AAAG8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4xDA/wAAAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+MQwP8AAAG8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/jEMD/AAABvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4xLA/wAAAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/jEMD/AAABvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4xDA/wAAAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+MQwP8AAAG8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/jEsD/AAABvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+MQwP8AAAG8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/jEMD/AAABvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4xDA/wAAAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+MSwP8AAAG8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4xDA/wAAAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+MQwP8AAAG8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/jEMD/AAABvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="; var timeloop_S = document.createElement("source"); getElementById__timeloop.appendChild(timeloop_S); timeloop_S.type = "audio/mpeg"; timeloop_S.src = timeloop_A; timeloop_A = undefined; getElementById__timeloop.load(); if (getElementById__timeloop.duration > 0) noSleep = undefined; getElementById__audioplayer.addEventListener("ended", ended_action); getElementById__videoplayer.addEventListener("ended", ended_action); getElementById__audioplayer.addEventListener("timeupdate", timeupdate_action); getElementById__videoplayer.addEventListener("timeupdate", timeupdate_action); if ('mediaSession' in navigator) { getElementById__audioplayer.addEventListener("play", show_audio_metadata); getElementById__videoplayer.addEventListener("play", show_video_metadata); if ("setPositionState" in navigator.mediaSession) { getElementById__audioplayer.addEventListener("timeupdate", mediasession_progress); getElementById__videoplayer.addEventListener("timeupdate", mediasession_progress); } navigator.mediaSession.setActionHandler('seekbackward',function(){getElementById__player.currentTime-=7}); navigator.mediaSession.setActionHandler('seekforward',function(){getElementById__player.currentTime+=7}); navigator.mediaSession.setActionHandler("seekto",function(deet){ if (deet.fastSeek && "fastSeek" in getElementById__player) getElementById__player.fastSeek(deet.seekTime); else getElementById__player.currentTime = deet.seekTime}); navigator.mediaSession.setActionHandler('nexttrack',function(){search_action(true)}); } site_action(); if (formfocus) getElementById__artist.focus(); </script> </body> </html>