| Current Path : /home/quelfutuu/www/plugins/auto/oembed/v3.5.1/oembed/input/ |
| Current File : /home/quelfutuu/www/plugins/auto/oembed/v3.5.1/oembed/input/posttraite_youtube_video.php |
<?php
/**
* Plugin oEmbed
* Licence GPL3
*
*/
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
function oembed_input_posttraite_youtube_video_dist($data, $url_orig) {
include_spip('inc/filtres');
$html = $data['html'];
if (
$e = extraire_balise($html, 'embed')
and $src = extraire_attribut($e, 'src')
) {
$data['url'] = $src;
}
// On regarde si l'attribut rel est placé dans l'URL
// pour éviter l'affichage des vidéo liées à la fin de la vidéo
if (strpos($url_orig, '&rel=0') or strpos($url_orig, '?rel=0')) {
$data['html'] = str_replace('feature=oembed', 'feature=oembed&rel=0', $data['html']);
}
// On regarde si l'attribut wmode=opaque est placé dans l'URL
// pour forcer l'affichage des vidéo au bon z-index
if (strpos(strtolower($url_orig), '&wmode=opaque') or strpos(strtolower($url_orig), '?wmode=opaque')) {
$data['html'] = str_replace('feature=oembed', 'feature=oembed&wmode=Opaque', $data['html']);
}
// Forcer l'utilisation de la version sans cookie de youtube
$data['html'] = str_replace('https://www.youtube.com/', 'https://www.youtube-nocookie.com/', $data['html']);
// recuperer la duree si possible, ruse de sioux
// http://stackoverflow.com/questions/10066638/get-youtube-information-via-json-for-single-video-not-feed-in-javascript
if (defined('_OEMBED_VIDEO_DURATION') and _OEMBED_VIDEO_DURATION) {
$v = null;
$r = parse_url($url_orig);
if (!empty($r['query'])) {
$v = parametre_url($url_orig, 'v');
} elseif (!empty($r['path'])) {
$v = ltrim($r['path'], '/');
}
if ($v) {
$oembed_recuperer_url = charger_fonction('oembed_recuperer_url', 'inc');
if ($infos = $oembed_recuperer_url('https://www.youtube.com/get_video_info?html5=1&video_id=' . $v, '', '')) {
$infos = rawurldecode($infos);
// et une deuxieme fois car on cherche dur= qui est encode dans une autre variable
$infos = rawurldecode($infos);
$infos = explode('dur=', $infos, 2);
if ($duree = intval(round(floatval(end($infos))))) {
$data['duration'] = $duree;
}
unset($infos);
}
}
}
// un bug chez youtube ?
$data['html'] = rtrim($data['html'], ')');
return $data;
}