Discussion:
Youtube oembed & plugin fix
Fabrizio Gargano
2014-07-04 14:26:28 UTC
Permalink
Hi everybody.
It seems youtube.com oembed result for playlists is a bit incorrect.

Example:


The oembed url for xml format is:
http://www.youtube.com/oembed?url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DN1zxDa3t0fg%26list%3DPLE90C50E033BD1351%26index%3D3&format=xml

The html tag, imho, should have a src attribute for iframe like
"http://www.youtube.com/embed/videoseries?list=PLE90C50E033BD1351&index=1"

Youtube's iframe src lacks the index parameter, so the embed starts to
play from the first video.

So I wrote a simple mu-plugins to append it to html results:

<?php
function fix_iframe_src($html, $url){
if(strpos($url,"http://www.youtube.com/")!==false &&
strpos($url,"list=")!==false && strpos($html,"index=")===false){
foreach(explode("&",$url) as $param){
if(preg_match('/^index=([0-9]+)$/',$param,$result)===1){
$index=$result[1];
$index--;
return preg_replace('/(src="[^"]+)/',"\\1&index=$index",$html);
}
}
}
return $html;
}
add_filter('embed_oembed_html','fix_iframe_src',10,2);


Regards,
F.

Loading...