I share this code to add to "kfunctions.php" that served me to load videos from Twicth.
- Code: Select all
// Twitch Shortcode
// Use: [twitch video="2411387057"]
$FUNCS->register_shortcode('twitch', 'twitch_handler');
function twitch_handler($params, $content = null)
{
global $FUNCS;
extract($FUNCS->get_named_vars(array(
'video' => '',
'width' => '100%', // Usar 100% para el ancho
'height' => '378',
'parent' => 'misitio.com' // Replace with your real domain
), $params));
// Si no se proporciona un video/canal, salir
if (empty($video)) return '<p>Error: No se ha proporcionado un ID de video o canal.</p>';
// Verificar si el parámetro es un enlace o solo un ID
if ((substr($video, 0, 7) == 'https://') || (substr($video, 0, 8) == 'https://')) {
/*
Links soportados:
https://www.twitch.tv/channel_name
https://www.twitch.tv/videos/2411387057
*/
if (preg_match('#https?://(?:www\.)?twitch\.tv/(videos/)?([^/]+)#i', $video, $matches)) {
$is_video = isset($matches[1]); // Si existe "videos/", es un video grabado
$video = $matches[2];
} else {
return '<p>Error: Formato de URL no válido.</p>';
}
}
// Sanitizar parámetros
$video = htmlspecialchars($video, ENT_QUOTES);
$width = (int)$width;
$height = (int)$height;
// Detectar si es un video grabado o un canal en vivo
if (is_numeric($video)) {
$src = "https://player.twitch.tv/?video=v$video&parent=$parent";
} else {
$src = "https://player.twitch.tv/?channel=$video&parent=$parent";
}
// Generar el iframe con contenedor responsivo
$html = <<<EOS
<div style="position:relative; width:100%; height:0; padding-bottom:56.25%; overflow:hidden;">
<iframe src="$src" width="100%" height="100%" allowfullscreen frameborder="0" style="position:absolute; top:0; left:0;"></iframe>
</div>
EOS;
return $html;
}