SEARCH VIDEOS AND SIMPLIFIED JSONP DEMO
About JSON and JSONP you can read in the internet
Here I would like to present this issue as I understand.
JSONP (JSON with Padding) is an unofficial method, a intelligent trick to overcome barriers when we want to transmit information between different domains.
(author: Bob Ippolito
http://bob.ippoli.to/archives/2005/12/05/remote-json-jsonp/)
To use JSONP, first we need convert the information into a javascript object.
Then this object is taken as an argument for a function with a certain name, eg "jsonCallback(...)"
Because the user has written jsonpCallback function when the information comes to the client PC this function is trigged and the JSON (long string, a photo of the object) revives, becomes real object and start working under the user's program.
There are two methods
1- Typical method:
The user can give a name for function and then sent this name to remote server. To use typical method apart from Javascript, we have to know a server-side programming language (eg PHP). Typical method is difficult to understand for people who knows only Javascript.
2- Simplified free method:
Take it to avoid knowing of server-side scripts.
In this post there 3 files
A- File jsonp-demo1.html
When reading source code it is easy to understand the nature of jsonp
B- Now I cut one part of javascript and use it to create one external javscript file that I call api3-demo.js.
The file "api3-demo.js" was uploaded into my hosting server "https://apiculate-integers.000webhostapp.com"
From the rest of html file I create jsonp-demo2.html and it was saved to my PC.
I tried "jsonp-demo2.html". It works.
If you download (or create) the file jsonp-demo2.html to your PC then I thinks that it also works normally.
http://play-videos.url.ph/v3/jsonp-demo2.html
REFERENCE
http://www.sitepoint.com/jsonp-examples/
http://www.kliptu.com/free-script/jquery-getjson-cross-domain-json-example-with-php
Here I would like to present this issue as I understand.
JSONP (JSON with Padding) is an unofficial method, a intelligent trick to overcome barriers when we want to transmit information between different domains.
(author: Bob Ippolito
http://bob.ippoli.to/archives/2005/12/05/remote-json-jsonp/)
To use JSONP, first we need convert the information into a javascript object.
Then this object is taken as an argument for a function with a certain name, eg "jsonCallback(...)"
Because the user has written jsonpCallback function when the information comes to the client PC this function is trigged and the JSON (long string, a photo of the object) revives, becomes real object and start working under the user's program.
There are two methods
1- Typical method:
The user can give a name for function and then sent this name to remote server. To use typical method apart from Javascript, we have to know a server-side programming language (eg PHP). Typical method is difficult to understand for people who knows only Javascript.
2- Simplified free method:
Take it to avoid knowing of server-side scripts.
In this post there 3 files
A- File jsonp-demo1.html
When reading source code it is easy to understand the nature of jsonp
<!DOCTYPE html">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<style>
body{
font-family:Arial;font-size:10pt;
background-color:#DDDDDD; margin:0px;padding:0px;
}
</style>
</head>
<body onload="init()">
<div align="center">
<div style="width:600px">
<br>
<button onclick = "jsonCallback(obj)">Click to load JSON</button>
<br><br>
response.items[1].title =<br>
<span id = "span1"></span>
<br><br>THIS IS JSON WRAPPED BY A FUNCTION<br><br>
<textarea id = "area1"
style = "width:560px;height:310px;padding:5px"></textarea>
<br><br>
</div>
<script>
function jsonCallback(response){
var titVal = response.items[1].title;
document.getElementById('span1').innerHTML = titVal;
stJSON = JSON.stringify(response,'',2);
document.getElementById('area1').value = "jsonCallback("+stJSON+')';
}
</script>
<script>
obj = {
items:[
{vidpid:"4DO8GsIYfhQ",
title:"Enrique Iglesias, Juan Luis Guerra - Cuando Me Enamoro"},
{vidpid:"9_tgBimq7Io",
title:"Claudia Jung & Richard Clayderman - Je t'aime mon amour!"},
{vidpid:"g6Ge_uR27jc",
title:"Mayelin Naranjo \"Palmas y Cañas\"-Mi Veneracion (Miguel Matamoros)"},
{vidpid:"67XdPLZzsHk",
title:"HOTEL CALIFORNIA - MARC ANHTONY (Version salsa)"}
]
}
function init(){
document.getElementById('span1').innerHTML = '';
document.getElementById('area1').value = '';
}
</script>
</div>
</div>
</body></html> <!-- 58 lines -->
B- Now I cut one part of javascript and use it to create one external javscript file that I call api3-demo.js.
obj = {
items:[
{vidpid:"G8RQZ_RmR_U",
title:"Italy/Napoli (Walking tour:Santa Lucia) Part 3"},
{vidpid:"DA_gTGVOLXU",
title:"Chet Atkins ~ Santa Lucia"},
{vidpid:"eeEKnIn_uuk",
title:"beegie adair - autumn leaves HQ"},
{vidpid:"4193_Bw8y2A",
title:"Amurski Valovi - Амурские волны"},
{vidpid:"cgk9vJREiDg",
title:"Frédéric Chopin Tristesse (Orchestral)"},
{vidpid:"wrFieclZpOg",
title:"AVE MARIA (FRANZ SCHUBERT) EN GUITARRA CLÁSICA POR MICHAEL LUCARELLI"},
{vidpid:"9_tgBimq7Io",
title:"Claudia Jung & Richard Clayderman - Je t'aime mon amour!"},
{vidpid:"4Jmhdskn4NY",
title:"Paul Mauriat - Endless love"},
{vidpid:"uiMyaF0tyG0",
title:"La Paloma -The Dove (with Lyrics).wmv"},
{vidpid:"x_qeZ0pqU9c",
title:"MANHÃ DE CARNAVAL (letra e vídeo), vídeo MOACIR SILVEIRA"},
{vidpid:"2vipzUaQiCw",
title:"BESAME MUCHA Maurizio"},
{vidpid:"NowlThzdpaU",
title:"ROCCO GRANATA - ITALIAN SONG"},
{vidpid:"vBCrZsxUvCE",
title:"Rataro - Mave Tapu"},
{vidpid:"4DO8GsIYfhQ",
title:"Enrique Iglesias, Juan Luis Guerra - Cuando Me Enamoro"},
{vidpid:"g6Ge_uR27jc",
title:"Mayelin Naranjo \"Palmas y Cañas\"-Mi Veneracion (Miguel Matamoros)"},
{vidpid:"67XdPLZzsHk",
title:"HOTEL CALIFORNIA - MARC ANHTONY (Version salsa)"}
]
}
jsonCallback(obj);
The file "api3-demo.js" was uploaded into my hosting server "https://apiculate-integers.000webhostapp.com"
From the rest of html file I create jsonp-demo2.html and it was saved to my PC.
I tried "jsonp-demo2.html". It works.
If you download (or create) the file jsonp-demo2.html to your PC then I thinks that it also works normally.
http://play-videos.url.ph/v3/jsonp-demo2.html
<!DOCTYPE html">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<style>
body{
font-family:Arial; font-size:10pt;
background-color:#CCCCCC; margin:0px; padding:0px;
}
a{
color:blue; text-decoration:none;
}
a:hover {
background-color: #CCFF99;
}
#div1{
padding:10px;background-color:white;width:580px;height:120px;
overflow:auto;text-align:left;line-height:160%
}
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js">
</script>
</head>
<body>
<div align="center" style="margin-left:0px">
<div id="player"></div>
<br><br>
<div id="div1" ></div>
<br><br>
<script>
vid = []; tit = [];
function jsonCallback(response){
len = response.items.length;
for(i=0;i<len;i++){
stVid = response.items[i].vidpid;
vid.push(stVid);
stTit = response.items[i].title;
tit.push(stTit);
var xx = '<b>'+(i+1)+'</b>/<b>'+len+'</b>:'+
'<a href="#" onclick="playVid('+i+'); return false">'+
stTit +'<br>';
document.getElementById('div1').innerHTML += xx;
}
}
normalW = '600'; // '812'
normalH = '381'; // '516'
var player;
startvid = 'otPNwTrva0I';
var jj = 0;
var tag = document.createElement('script');
tag.src = "http://www.youtube.com/player_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
function onYouTubePlayerAPIReady() {
player = new YT.Player('player', {
width: normalW,
height:normalH,
videoId: startvid,
playerVars: { 'autoplay': 0, 'rel': 0, 'showinfo': 0, 'showsearch': 0, },
events: {
'onStateChange': onPlayerStateChange,
'onError': onPlayerError
}
});
}
function onPlayerError(error){
if ( error ){
nextVid();
}
}
function onPlayerStateChange(event) {
if (event.data == 0) {
nextVid();
return false;
}
}
function playVid(num){
jj=num;
ide = vid[num];
player.loadVideoById(ide, "default");
}
function nextVid(){
last = vid.length - 1;
if(jj <= last){jj=jj+1};
if (jj > last){jj=0};
playVid(jj);
}
</script>
<script src="https://apiculate-integers.000webhostapp.com/copy-scan/api3-demo.js"></script>
<!-- NOTE:
Another way: put "api3-demo.js" on your PC and use src="api3-demo.js"
-->
</div>
</body></html> <!-- 110 lines -->
REFERENCE
http://www.sitepoint.com/jsonp-examples/
http://www.kliptu.com/free-script/jquery-getjson-cross-domain-json-example-with-php