{"id":324441,"date":"2026-07-13T13:42:48","date_gmt":"2026-07-13T13:42:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/sign-language-video-player\/"},"modified":"2026-08-26T14:44:21","modified_gmt":"2026-08-26T14:44:21","slug":"arielhf-videopip-overlay","status":"publish","type":"plugin","link":"https:\/\/pt.wordpress.org\/plugins\/arielhf-videopip-overlay\/","author":13714914,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.3","stable_tag":"1.2.3","tested":"7.0.4","requires":"5.6","requires_php":"7.4","requires_plugins":null,"header_name":"Reproductor de Video Picture in Picture","header_author":"Ariel Hern\u00e1ndez Friz","header_description":"Video player with an optional picture-in-picture (PiP) mini overlay \u2014 ideal for sign language or any secondary synchronized video. Supports self-hosted MP4, Vimeo, and optional WebVTT subtitles.","assets_banners_color":"1e1f1d","last_updated":"2026-08-26 14:44:21","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/ahernandezfriz\/reproductor-senas","header_author_uri":"https:\/\/arielhf.cl","rating":0,"author_block_rating":0,"active_installs":0,"downloads":198,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.2.0":{"tag":"1.2.0","author":"arielhf","date":"2026-08-25 19:04:50"},"1.2.1":{"tag":"1.2.1","author":"arielhf","date":"2026-08-25 20:47:59"},"1.2.2":{"tag":"1.2.2","author":"arielhf","date":"2026-08-26 13:22:38"},"1.2.3":{"tag":"1.2.3","author":"arielhf","date":"2026-08-26 14:44:21"}},"upgrade_notice":{"1.2.3":"<p>Ajusta el tama\u00f1o y posici\u00f3n de los subt\u00edtulos para que no se superpongan al video secundario.<\/p>","1.2.2":"<p>Corrige arrastre del PiP en pausa, clics que interfer\u00edan con play\/pausa y la alineaci\u00f3n del control de volumen.<\/p>","1.2.1":"<p>Mejora el video secundario (redimensionar), corrige el fallo al salir de pantalla completa y actualiza textos en espa\u00f1ol.<\/p>","1.2.0":"<p>Actualizaci\u00f3n recomendada: nuevo nombre\/slug para WordPress.org, APIs con prefijo y shortcode <code>[ahvpo_player]<\/code> (el alias <code>[video_senas]<\/code> sigue funcionando).<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3606114,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3606114,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3665880,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3665880,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.2.0","1.2.1","1.2.2","1.2.3"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Reproductor con ventana mini y controles personalizados","2":"Subt\u00edtulos mostrados sobre la barra de controles","3":"P\u00e1gina de ajustes con documentaci\u00f3n del shortcode"}},"plugin_section":[],"plugin_tags":[1953,277463,178358,1982,222],"plugin_category":[34,43,50],"plugin_contributors":[271362],"plugin_business_model":[],"class_list":["post-324441","plugin","type-plugin","status-publish","hentry","plugin_tags-accessibility","plugin_tags-picture-in-picture","plugin_tags-sign-language","plugin_tags-subtitles","plugin_tags-video","plugin_category-accessibility","plugin_category-customization","plugin_category-media","plugin_contributors-arielhf","plugin_committers-arielhf"],"banners":{"banner":"https:\/\/ps.w.org\/arielhf-videopip-overlay\/assets\/banner-772x250.png?rev=3665880","banner_2x":"https:\/\/ps.w.org\/arielhf-videopip-overlay\/assets\/banner-1544x500.png?rev=3665880","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/arielhf-videopip-overlay\/assets\/icon-128x128.png?rev=3606114","icon_2x":"https:\/\/ps.w.org\/arielhf-videopip-overlay\/assets\/icon-256x256.png?rev=3606114","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Inserta un reproductor accesible con una ventana mini arrastrable sobre el video principal en modo picture-in-picture (PiP), subt\u00edtulos WebVTT opcionales y controles personalizados que funcionan en modales y maquetadores de p\u00e1ginas.<\/p>\n\n<p><strong>Demo en vivo<\/strong><\/p>\n\n<p><a href=\"https:\/\/arielhf.cl\/plugins-video-pip-overlay\/\">Probar la demo en vivo<\/a><\/p>\n\n<p><strong>Caracter\u00edsticas<\/strong><\/p>\n\n<ul>\n<li>Video principal desde un archivo (URL directa) o Vimeo<\/li>\n<li>Video mini opcional (archivo o Vimeo), sincronizado con el principal \u2014 normalmente lengua de se\u00f1as, u otro video secundario<\/li>\n<li>Subt\u00edtulos WebVTT opcionales desde la Biblioteca de medios<\/li>\n<li>Ventana mini arrastrable (rat\u00f3n y t\u00e1ctil)<\/li>\n<li>Re-sincronizaci\u00f3n autom\u00e1tica si se desfasa la reproducci\u00f3n<\/li>\n<li>Carga coordinada: si fallan las se\u00f1as o los subt\u00edtulos, el video principal sigue disponible<\/li>\n<li>Varios reproductores en la misma p\u00e1gina<\/li>\n<li>Compatible con popups de Elementor, modales Bootstrap y contenido din\u00e1mico<\/li>\n<li>Sin branding ni seguimiento en el frontend<\/li>\n<\/ul>\n\n<p><strong>Servicios de terceros<\/strong><\/p>\n\n<p>Si usas URLs de Vimeo, el reproductor carga el embed y la API de Vimeo. Revisa sus t\u00e9rminos: https:\/\/vimeo.com\/terms<\/p>\n\n<p>Los subt\u00edtulos se leen desde tu propio sitio. Este plugin no env\u00eda datos de visitantes a servicios de anal\u00edtica externos.<\/p>\n\n<p><strong>Desarrollo<\/strong><\/p>\n\n<p>Repositorio de desarrollo: https:\/\/github.com\/ahernandezfriz\/reproductor-senas<\/p>\n\n<h3>Usage<\/h3>\n\n<p>Shortcode b\u00e1sico:<\/p>\n\n<pre><code>[ahvpo_player principal=\"https:\/\/example.com\/wp-content\/uploads\/videos\/charla.mp4\" senas=\"https:\/\/example.com\/wp-content\/uploads\/videos\/charla-senas.mp4\"]\n<\/code><\/pre>\n\n<p>Ejemplo completo:<\/p>\n\n<pre><code>[ahvpo_player principal=\"https:\/\/vimeo.com\/123456789\" senas=\"https:\/\/example.com\/wp-content\/uploads\/videos\/lengua-senas.mp4\" subtitulos=\"https:\/\/example.com\/wp-content\/uploads\/subtitulos\/charla.vtt\" titulo=\"Charla de accesibilidad\" ancho=\"800px\"]\n<\/code><\/pre>\n\n<p><strong>Par\u00e1metros<\/strong><\/p>\n\n<ul>\n<li><code>principal<\/code> (obligatorio) \u2014 URL de Vimeo o archivo de video<\/li>\n<li><code>senas<\/code> (opcional) \u2014 URL del video de la ventana mini (Vimeo o archivo); normalmente lengua de se\u00f1as u otro video secundario<\/li>\n<li><code>subtitulos<\/code> (opcional) \u2014 URL de archivo WebVTT de este sitio. D\u00e9jalo vac\u00edo para ocultar subt\u00edtulos<\/li>\n<li><code>titulo<\/code> (opcional) \u2014 T\u00edtulo mostrado sobre el reproductor<\/li>\n<li><code>ancho<\/code> (opcional) \u2014 Ancho m\u00e1ximo, p. ej. <code>800px<\/code> o <code>100%<\/code>. Por defecto: <code>100%<\/code><\/li>\n<\/ul>\n\n<p>Alias legado: <code>[video_senas]<\/code> sigue funcionando con los mismos par\u00e1metros.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Sube la carpeta <code>arielhf-videopip-overlay<\/code> a <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activa el plugin en el men\u00fa <strong>Plugins<\/strong> de WordPress<\/li>\n<li>Inserta el shortcode en cualquier p\u00e1gina o entrada<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"%C2%BFpuedo%20mezclar%20vimeo%20y%20videos%20alojados%20en%20mi%20sitio%3F\"><h3>\u00bfPuedo mezclar Vimeo y videos alojados en mi sitio?<\/h3><\/dt>\n<dd><p>S\u00ed. <code>principal<\/code> y <code>senas<\/code> son independientes. Por ejemplo, el principal puede estar en Vimeo y la ventana mini ser un MP4 en tu carpeta de medios.<\/p><\/dd>\n<dt id=\"%C2%BFd%C3%B3nde%20deben%20estar%20los%20subt%C3%ADtulos%3F\"><h3>\u00bfD\u00f3nde deben estar los subt\u00edtulos?<\/h3><\/dt>\n<dd><p>Sube archivos <code>.vtt<\/code> a la Biblioteca de medios de WordPress. El shortcode debe usar una URL del mismo sitio.<\/p><\/dd>\n<dt id=\"%C2%BFfunciona%20en%20popups%20de%20elementor%3F\"><h3>\u00bfFunciona en popups de Elementor?<\/h3><\/dt>\n<dd><p>S\u00ed. El reproductor se inicializa ante cambios del DOM, eventos de popup de Elementor y, como respaldo, en la primera interacci\u00f3n del usuario.<\/p><\/dd>\n<dt id=\"%C2%BFsoporta%20youtube%3F\"><h3>\u00bfSoporta YouTube?<\/h3><\/dt>\n<dd><p>No. Por ahora solo admite archivos de video (URL directa) y Vimeo.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.3<\/h4>\n\n<ul>\n<li>Subt\u00edtulos: barra m\u00e1s corta (m\u00e1x. 60% del ancho) y un poco m\u00e1s abajo para no tapar el video secundario (PiP).<\/li>\n<\/ul>\n\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>Correcci\u00f3n: arrastrar el video secundario tambi\u00e9n en pausa o antes de reproducir (ya no lo tapa el overlay de play).<\/li>\n<li>Correcci\u00f3n: clic en el secundario ya no inicia\/pausa el video principal.<\/li>\n<li>Correcci\u00f3n: play\/pausa con clic en el \u00e1rea del video principal se mantiene al reproducir.<\/li>\n<li>Barra \u201cArrastrar para mover\u201d y asa de redimensionar solo visibles al pasar el mouse.<\/li>\n<li>Alineaci\u00f3n del control de volumen con el icono de mute.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Correcci\u00f3n: al salir de pantalla completa, el video secundario vuelve a su posici\u00f3n y tama\u00f1o por defecto (ya no desaparec\u00eda si se hab\u00eda movido en fullscreen).<\/li>\n<li>Nuevo: redimensionar la ventana secundaria desde la esquina superior izquierda (hasta un 25% m\u00e1s).<\/li>\n<li>Barra \u201cArrastrar para mover\u201d reubicada abajo para no interferir con el control de tama\u00f1o.<\/li>\n<li>Textos de los botones de subt\u00edtulos y lengua de se\u00f1as en espa\u00f1ol.<\/li>\n<li>Nombre visible actualizado a \u201cReproductor de Video Picture in Picture\u201d.<\/li>\n<li>Readme del directorio en espa\u00f1ol y l\u00edmite de 5 etiquetas.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Renombrado a ArielHF VideoPIP Overlay (nombre y slug distintivos para WordPress.org).<\/li>\n<li>Prefijos en APIs PHP, handles de scripts, acciones AJAX y text domain (<code>ahvpo_<\/code> \/ <code>arielhf-videopip-overlay<\/code>).<\/li>\n<li>Shortcode principal <code>[ahvpo_player]<\/code>; <code>[video_senas]<\/code> se mantiene como alias compatible.<\/li>\n<li>Documentaci\u00f3n del modo picture-in-picture (PiP) con ventana mini sobrepuesta.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Preparaci\u00f3n para WordPress.org: carga condicional de assets, i18n, endurecimiento de seguridad y documentaci\u00f3n.<\/li>\n<li>Soporte de Vimeo y videos autoalojados en cualquier combinaci\u00f3n.<\/li>\n<li>Subt\u00edtulos WebVTT opcionales embebidos en el servidor para mayor fiabilidad.<\/li>\n<li>Carga coordinada con avisos si fallan las se\u00f1as o los subt\u00edtulos.<\/li>\n<li>Mejoras de compatibilidad con popups\/modales (Elementor, Bootstrap).<\/li>\n<\/ul>\n\n<h4>1.0.22<\/h4>\n\n<ul>\n<li>Integraci\u00f3n del reproductor Vimeo para video principal y de se\u00f1as.<\/li>\n<li>Soporte de fuentes mixtas (Vimeo + archivos locales).<\/li>\n<\/ul>\n\n<h4>1.0.21<\/h4>\n\n<ul>\n<li>Carga coordinada de assets y estados de carga visibles para el usuario.<\/li>\n<\/ul>\n\n<h4>1.0.20<\/h4>\n\n<ul>\n<li>Correcci\u00f3n del parseo WebVTT y del embebido de cues en el servidor.<\/li>\n<\/ul>\n\n<h4>1.0.19<\/h4>\n\n<ul>\n<li>Estilos del bot\u00f3n de subt\u00edtulos y sincronizaci\u00f3n de versi\u00f3n.<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Inicializaci\u00f3n robusta en modales y popups din\u00e1micos.<\/li>\n<li>Ventana de se\u00f1as activada por defecto.<\/li>\n<li>Mejoras ARIA.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Lanzamiento inicial.<\/li>\n<\/ul>","raw_excerpt":"Reproductor con ventana mini picture-in-picture (PiP) opcional, ideal para lengua de se\u00f1as u otro video secundario.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/324441","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=324441"}],"author":[{"embeddable":true,"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/arielhf"}],"wp:attachment":[{"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=324441"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=324441"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=324441"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=324441"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=324441"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=324441"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}