Primeros pasos
Copia un prompt de configuración con los pasos de instalación y la guía completa en markdown para este plugin.
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/capacitor-youtube-player`
Run the required Capacitor sync/update step after installation.
Read this markdown guide for the full setup steps: https://raw.githubusercontent.com/Cap-go/website/refs/heads/main/apps/docs/src/content/docs/docs/plugins/youtube-player/getting-started.mdx
Use that guide for platform-specific steps, native file edits, permissions, config changes, imports, and usage setup.
If that guide references other docs pages, read them too.
Instalar
Sección titulada “Instalación”Puedes usar nuestro setup asistido por IA para instalar el plugin. Añade las skills de Capgo a tu herramienta de IA con el siguiente comando:
bunx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsLuego usa el siguiente prompt:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-youtube-player` plugin in my project.Si prefieres la configuración manual, instala el plugin ejecutando los siguientes comandos y sigue las instrucciones específicas para cada plataforma a continuación:
bun add @capgo/capacitor-youtube-playerbunx cap syncImportar
Sección titulada “Importar”import { YoutubePlayer } from '@capgo/capacitor-youtube-player';Inicio rápido
Sección titulada “Inicio rápido”import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
await YoutubePlayer.initialize({ playerId: 'my-player', videoId: 'dQw4w9WgXcQ', playerSize: { width: 640, height: 360 }, privacyEnhanced: true});Errores comunes
Sección titulada “Errores comunes”- Listeners: eliminar los handles al desmontar las pantallas.
- Inicializar una vez: run setup during app bootstrap.
- Fuente de verdad: confiar
src/definitions.tsen el repo de GitHub.
Solucionar el bloqueo de Referer de YouTube en la WebView principal
Sección titulada “Solucionar el bloqueo de Referer de YouTube en la WebView principal”Si YouTube funciona dentro del plugin pero falla cuando la misma app carga páginas, embeds o APIs de YouTube a través del WebView principal de Capacitor, activa patchRefererHeader en tu configuración de Capacitor.
Al activarlo, el plugin parchea Capacitor durante la sincronización/actualización para que las peticiones de YouTube interceptadas incluyan un Referer header válido.
{ "plugins": { "YoutubePlayer": { "patchRefererHeader": true, "refererHeader": "https://www.youtube.com" } }}- Solo
youtube.com,youtube-nocookie.com, yyoutu.belas peticiones se ven afectadas. - Las peticiones que ya definen un
Refererheader mantienen su valor original. refererHeaderes opcional y por defecto eshttps://www.youtube.com.- Compatible con Capacitor
8.xpara las plataformas iOS y Android instaladas.
Resumen de API
Sección titulada “Descripción general de API”initialize
Sección titulada “initialize”Inicializa una nueva instancia del reproductor de YouTube.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
await YoutubePlayer.initialize({ playerId: 'my-player', videoId: 'dQw4w9WgXcQ', playerSize: { width: 640, height: 360 }, privacyEnhanced: true});destroy
Sección titulada “destroy”Destruye una instancia del reproductor y libera recursos.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.destroy({ playerId: 'player-id-123' });console.log(result);stopVideo
Sección titulada “stopVideo”Detiene la reproducción y cancela la carga. Úsalo con moderación; se prefiere pauseVideo().
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.stopVideo({ playerId: 'player-id-123' });console.log(result);playVideo
Sección titulada “playVideo”Reproduce el video cargado o en cola. El estado final del player será PLAYING (1).
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.playVideo({ playerId: 'player-id-123' });console.log(result);pauseVideo
Sección titulada “pauseVideo”Pausa el video que se está reproduciendo. El estado final del player será PAUSED (2), a menos que ya esté en ENDED (0).
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.pauseVideo({ playerId: 'player-id-123' });console.log(result);Busca un momento específico en el video. Si el player está en pausa, se mantiene así. Si está reproduciendo, continúa la reproducción.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.seekTo({ playerId: 'player-id-123', seconds: 10, allowSeekAhead: true,});console.log(result);loadVideoById
Sección titulada “loadVideoById”Carga y reproduce un video mediante su ID de YouTube.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.loadVideoById({ playerId: 'player-id-123', options: { videoId: 'video-id-123' },});console.log(result);cueVideoById
Sección titulada “cueVideoById”Prepara un video por ID sin reproducirlo. Carga la miniatura y prepara el player, pero no solicita el video hasta llamar a playVideo().
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.cueVideoById({ playerId: 'player-id-123', options: { videoId: 'video-id-123' },});console.log(result);loadVideoByUrl
Sección titulada “loadVideoByUrl”Carga y reproduce un video mediante su URL completa.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.loadVideoByUrl({ playerId: 'player-id-123', options: { mediaContentUrl: 'https://example.com' },});console.log(result);cueVideoByUrl
Sección titulada “cueVideoByUrl”Prepara un video por URL sin reproducirlo.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.cueVideoByUrl({ playerId: 'player-id-123', options: { mediaContentUrl: 'https://example.com' },});console.log(result);cuePlaylist
Sección titulada “cuePlaylist”Prepara una playlist sin reproducirla. Carga la playlist y prepara el primer video.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.cuePlaylist({ playerId: 'player-id-123', playlistOptions: { listType: 'playlist' },});console.log(result);loadPlaylist
Sección titulada “loadPlaylist”Carga y reproduce una playlist.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.loadPlaylist({ playerId: 'player-id-123', playlistOptions: { listType: 'playlist' },});console.log(result);nextVideo
Sección titulada “nextVideo”Reproduce el siguiente video de la playlist.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.nextVideo({ playerId: 'player-id-123' });console.log(result);previousVideo
Sección titulada “previousVideo”Reproduce el video anterior de la playlist.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.previousVideo({ playerId: 'player-id-123' });console.log(result);playVideoAt
Sección titulada “playVideoAt”Reproduce un video específico de la lista por su índice.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.playVideoAt({ playerId: 'player-id-123', index: 1,});console.log(result);Silencia el audio del reproductor.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.mute({ playerId: 'player-id-123' });console.log(result);Activa el audio del reproductor.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.unMute({ playerId: 'player-id-123' });console.log(result);isMuted
Sección titulada “isMuted”Comprueba si el reproductor está silenciado.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.isMuted({ playerId: 'player-id-123' });console.log(result);setVolume
Sección titulada “setVolume”Establece el nivel de volumen del reproductor.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.setVolume({ playerId: 'player-id-123', volume: 0.5,});console.log(result);getVolume
Sección titulada “getVolume”Obtiene el nivel de volumen actual del reproductor. Devuelve el volumen aunque el reproductor esté silenciado.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getVolume({ playerId: 'player-id-123' });console.log(result);setSize
Sección titulada “setSize”Establece las dimensiones del reproductor en píxeles.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.setSize({ playerId: 'player-id-123', width: 1080, height: 1920,});console.log(result);getPlaybackRate
Sección titulada “getPlaybackRate”Obtiene la velocidad de reproducción actual.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getPlaybackRate({ playerId: 'player-id-123' });console.log(result);setPlaybackRate
Sección titulada “setPlaybackRate”Establece la velocidad de reproducción.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.setPlaybackRate({ playerId: 'player-id-123', suggestedRate: 1,});console.log(result);getAvailablePlaybackRates
Sección titulada “getAvailablePlaybackRates”Obtiene la lista de velocidades disponibles para el video actual.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getAvailablePlaybackRates({ playerId: 'player-id-123' });console.log(result);setLoop
Sección titulada “setLoop”Activa o desactiva el bucle de la playlist. Si está activado, la playlist se reiniciará desde el principio tras el último video.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.setLoop({ playerId: 'player-id-123', loopPlaylists: true,});console.log(result);setShuffle
Sección titulada “setShuffle”Activa o desactiva el modo aleatorio de la lista.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.setShuffle({ playerId: 'player-id-123', shufflePlaylist: true,});console.log(result);getVideoLoadedFraction
Sección titulada “getVideoLoadedFraction”Obtiene la fracción del video que se ha bufferizado. Más fiable que los métodos obsoletos getVideoBytesLoaded/getVideoBytesTotal.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getVideoLoadedFraction({ playerId: 'player-id-123' });console.log(result);getPlayerState
Sección titulada “getPlayerState”Obtén el estado actual del reproductor.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getPlayerState({ playerId: 'player-id-123' });console.log(result);getAllPlayersEventsState
Sección titulada “getAllPlayersEventsState”Obtén los estados de eventos de todos los reproductores activos. Útil para trackear múltiples instancias de reproductores.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getAllPlayersEventsState();console.log(result);getCurrentTime
Sección titulada “getCurrentTime”Obtén la posición actual de reproducción en segundos.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getCurrentTime({ playerId: 'player-id-123' });console.log(result);toggleFullScreen
Sección titulada “toggleFullScreen”Activa o desactiva el modo de pantalla completa.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.toggleFullScreen({ playerId: 'player-id-123', isFullScreen: true,});console.log(result);getPlaybackQuality
Sección titulada “getPlaybackQuality”Obtiene la calidad de reproducción actual.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getPlaybackQuality({ playerId: 'player-id-123' });console.log(result);setPlaybackQuality
Sección titulada “setPlaybackQuality”Establece la calidad de reproducción sugerida. La calidad real puede variar según la red.
import { YoutubePlayer, IPlaybackQuality } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.setPlaybackQuality({ playerId: 'player-id-123', suggestedQuality: IPlaybackQuality.SMALL,});console.log(result);getAvailableQualityLevels
Sección titulada “getAvailableQualityLevels”Obtiene la lista de calidades disponibles para el video actual.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getAvailableQualityLevels({ playerId: 'player-id-123' });console.log(result);getDuration
Sección titulada “getDuration”Obtiene la duración del video actual en segundos.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getDuration({ playerId: 'player-id-123' });console.log(result);getVideoUrl
Sección titulada “getVideoUrl”Obtén la URL de YouTube.com del video actual.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getVideoUrl({ playerId: 'player-id-123' });console.log(result);getVideoEmbedCode
Sección titulada “getVideoEmbedCode”Obtén el code de inserción del video actual. Devuelve el code de inserción en HTML.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getVideoEmbedCode({ playerId: 'player-id-123' });console.log(result);getPlaylist
Sección titulada “getPlaylist”Obtén un array con los IDs de los videos de la playlist actual.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getPlaylist({ playerId: 'player-id-123' });console.log(result);getPlaylistIndex
Sección titulada “getPlaylistIndex”Obtén el índice del video que se está reproduciendo en la playlist.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getPlaylistIndex({ playerId: 'player-id-123' });console.log(result);getIframe
Sección titulada “getIframe”Obtén el elemento DOM del iframe para el reproductor. Solo plataforma web.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getIframe({ playerId: 'player-id-123' });console.log(result);addEventListener
Sección titulada “addEventListener”Añade un event listener al reproductor. Solo plataforma web.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
YoutubePlayer.addEventListener({ playerId: 'my-player', eventName: 'onStateChange', listener: (event) => { console.log('Player state:', event.data); },});removeEventListener
Sección titulada “removeEventListener”Elimina un event listener del reproductor. Solo plataforma web.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
await YoutubePlayer.removeEventListener({ playerId: 'player-id-123', eventName: 'onReady', listener: (event) => { console.log(event); },});Referencia de tipos
Sección titulada “Referencia de tipos”PlayerIdOptions
Sección titulada “PlayerIdOptions”export interface PlayerIdOptions { playerId: string;}SeekToOptions
Sección titulada “SeekToOptions”export interface SeekToOptions extends PlayerIdOptions { playerId: string; seconds: number; allowSeekAhead: boolean;}VideoByIdMethodOptions
Sección titulada “VideoByIdMethodOptions”export interface VideoByIdMethodOptions extends PlayerIdOptions { playerId: string; options: IVideoOptionsById;}VideoByUrlMethodOptions
Sección titulada “VideoByUrlMethodOptions”export interface VideoByUrlMethodOptions extends PlayerIdOptions { playerId: string; options: IVideoOptionsByUrl;}PlaylistMethodOptions
Sección titulada “PlaylistMethodOptions”export interface PlaylistMethodOptions extends PlayerIdOptions { playerId: string; playlistOptions: IPlaylistOptions;}PlayVideoAtOptions
Sección titulada “PlayVideoAtOptions”export interface PlayVideoAtOptions extends PlayerIdOptions { playerId: string; index: number;}SetVolumeOptions
Sección titulada “SetVolumeOptions”export interface SetVolumeOptions extends PlayerIdOptions { playerId: string; volume: number;}SetSizeOptions
Sección titulada “SetSizeOptions”export interface SetSizeOptions extends PlayerIdOptions { playerId: string; width: number; height: number;}SetPlaybackRateOptions
Sección titulada “SetPlaybackRateOptions”export interface SetPlaybackRateOptions extends PlayerIdOptions { playerId: string; suggestedRate: number;}SetLoopOptions
Sección titulada “SetLoopOptions”export interface SetLoopOptions extends PlayerIdOptions { playerId: string; loopPlaylists: boolean;}SetShuffleOptions
Sección titulada “SetShuffleOptions”export interface SetShuffleOptions extends PlayerIdOptions { playerId: string; shufflePlaylist: boolean;}ToggleFullScreenOptions
Sección titulada “ToggleFullScreenOptions”export interface ToggleFullScreenOptions extends PlayerIdOptions { playerId: string; isFullScreen: boolean | null | undefined;}Fuente de verdad
Sección titulada “Fuente de verdad”Esta página se genera desde el src/definitions.tsVuelve a ejecutar la sincronización cuando cambie el API público en el upstream.
Continúa desde Primeros pasos
Sección titulada “Continúa desde Primeros pasos”Si estás usando Primeros pasos para planificar el dashboard y las operaciones de API, conéctalo con Usando @capgo/capacitor-youtube-player para la capacidad nativa en Usando @capgo/capacitor-youtube-player, Resumen de API para el detalle de implementación en Resumen de API Overview, Introducción para el detalle de implementación en Introducción, Claves de API para el detalle de implementación en Claves de API, y Dispositivos para el detalle de implementación en Dispositivos.