Erste Schritte
Kopiere einen Setup-Prompt mit den Installationsschritten und dem vollständigen Markdown-Guide für dieses 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.
Installieren
Abschnitt mit dem Titel „Installation“Du kannst unser KI-gestütztes Setup nutzen, um das Plugin zu installieren. Füge deinem KI-Tool die Capgo Skills mit folgendem Befehl hinzu:
bunx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsNutze anschließend diesen Prompt:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-youtube-player` plugin in my project.Wenn du ein manuelles Setup bevorziehst, installiere das Plugin mit den folgenden Befehlen und befolge die plattformspezifischen Anweisungen unten:
bun add @capgo/capacitor-youtube-playerbunx cap syncImportieren
Abschnitt mit dem Titel „Import“import { YoutubePlayer } from '@capgo/capacitor-youtube-player';Quickstart
Abschnitt mit dem Titel „Quickstart“import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
await YoutubePlayer.initialize({ playerId: 'my-player', videoId: 'dQw4w9WgXcQ', playerSize: { width: 640, height: 360 }, privacyEnhanced: true});Häufige Fehlerquellen
Abschnitt mit dem Titel „Häufige Fehlerquellen“- Listener: Handles entfernen, wenn Screens unmounten.
- Einmal initialisieren: Setup beim App-Bootstrap ausführen.
- Single Source of Truth: vertraue
src/definitions.tsim GitHub Repo.
YouTube Referer-Blocking im Main WebView beheben
Abschnitt „YouTube Referer-Blocking im Main WebView beheben“Falls YouTube innerhalb des Plugins funktioniert, aber fehlschlägt, wenn die App YouTube-Seiten, Embeds oder APIs über das Haupt-WebView von Capacitor lädt, aktiviere patchRefererHeader in deiner Capacitor Konfiguration.
Bei aktivierter Option patcht das Plugin Capacitor während des Sync/Updates, sodass abgefangene YouTube-Requests einen gültigen Referer header.
{ "plugins": { "YoutubePlayer": { "patchRefererHeader": true, "refererHeader": "https://www.youtube.com" } }}- Nur
youtube.com,youtube-nocookie.com, undyoutu.beRequests sind betroffen. - Requests, die bereits einen
Refererheader behalten ihren ursprünglichen Wert. refererHeaderist optional und standardmäßig aufhttps://www.youtube.com.- Unterstützt auf Capacitor
8.xfür installierte iOS- und Android-Plattformen.
API Übersicht
Abschnitt mit dem Titel „API Übersicht“initialize
Abschnitt mit dem Titel „initialize“Initialisiert eine neue YouTube-Player-Instanz.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
await YoutubePlayer.initialize({ playerId: 'my-player', videoId: 'dQw4w9WgXcQ', playerSize: { width: 640, height: 360 }, privacyEnhanced: true});Zerstört eine Player-Instanz und gibt Ressourcen frei.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.destroy({ playerId: 'player-id-123' });console.log(result);stopVideo
Abschnitt mit dem Titel „stopVideo“Stoppt die Videowiedergabe und bricht das Laden ab. Nutze dies sparsam – pauseVideo() ist meist besser.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.stopVideo({ playerId: 'player-id-123' });console.log(result);playVideo
Abschnitt „playVideo“Das aktuell in der Warteschlange befindliche oder geladene Video abspielen. Der finale Player-Status ist PLAYING (1).
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.playVideo({ playerId: 'player-id-123' });console.log(result);pauseVideo
Abschnitt „pauseVideo“Das aktuell laufende Video pausieren. Der finale Player-Status ist PAUSED (2), sofern nicht bereits ENDED (0).
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.pauseVideo({ playerId: 'player-id-123' });console.log(result);seekTo
Abschnitt „seekTo“Zu einer bestimmten Zeit im Video springen. Wenn der Player pausiert ist, bleibt er pausiert. Wenn er läuft, spielt er weiter.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.seekTo({ playerId: 'player-id-123', seconds: 10, allowSeekAhead: true,});console.log(result);loadVideoById
Abschnitt „loadVideoById“Ein Video anhand seiner YouTube-ID laden und abspielen.
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
Abschnitt „cueVideoById“Video per ID laden, ohne es abzuspielen.\nLädt Thumbnail und bereitet den Player vor, fordert das Video aber erst bei einem Aufruf von playVideo() an.
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
Abschnitt „loadVideoByUrl“Ein Video über die vollständige URL laden und abspielen.
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
Abschnitt „cueVideoByUrl“Ein Video per URL vorbereiten, ohne es abzuspielen.
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
Abschnitt „cuePlaylist“Eine Playlist vorbereiten, ohne sie abzuspielen. Lädt die Playlist und bereitet das erste Video vor.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.cuePlaylist({ playerId: 'player-id-123', playlistOptions: { listType: 'playlist' },});console.log(result);loadPlaylist
Abschnitt „loadPlaylist“Eine Playlist laden und abspielen.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.loadPlaylist({ playerId: 'player-id-123', playlistOptions: { listType: 'playlist' },});console.log(result);nextVideo
Abschnitt „nextVideo“Das nächste Video der Playlist abspielen.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.nextVideo({ playerId: 'player-id-123' });console.log(result);previousVideo
Abschnitt „previousVideo“Das vorherige Video der Playlist abspielen.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.previousVideo({ playerId: 'player-id-123' });console.log(result);playVideoAt
Abschnitt „playVideoAt“Ein bestimmtes Video per Index abspielen.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.playVideoAt({ playerId: 'player-id-123', index: 1,});console.log(result);mute
Abschnitt „mute“Stummschalten des Player-Audios.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.mute({ playerId: 'player-id-123' });console.log(result);unMute
Abschnitt „unMute“Ton des Players wieder einschalten.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.unMute({ playerId: 'player-id-123' });console.log(result);isMuted
Abschnitt „isMuted“Prüfen, ob der Player aktuell stummgeschaltet ist.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.isMuted({ playerId: 'player-id-123' });console.log(result);setVolume
Abschnitt „setVolume“Die Lautstärke des Players festlegen.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.setVolume({ playerId: 'player-id-123', volume: 0.5,});console.log(result);getVolume
Abschnitt „getVolume“Die aktuelle Lautstärke des Players abrufen. Gibt die Lautstärke auch zurück, wenn der Player stummgeschaltet ist.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getVolume({ playerId: 'player-id-123' });console.log(result);setSize
Abschnitt „setSize“Die Abmessungen des Players in Pixeln festlegen.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.setSize({ playerId: 'player-id-123', width: 1080, height: 1920,});console.log(result);getPlaybackRate
Abschnitt „getPlaybackRate“Die aktuelle Wiedergabegeschwindigkeit abrufen.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getPlaybackRate({ playerId: 'player-id-123' });console.log(result);setPlaybackRate
Abschnitt „setPlaybackRate“Die Wiedergabegeschwindigkeit festlegen.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.setPlaybackRate({ playerId: 'player-id-123', suggestedRate: 1,});console.log(result);getAvailablePlaybackRates
Abschnitt „getAvailablePlaybackRates“Liste der verfügbaren Wiedergabegeschwindigkeiten für das aktuelle Video abrufen.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getAvailablePlaybackRates({ playerId: 'player-id-123' });console.log(result);setLoop
Abschnitt „setLoop“Playlist-Loop aktivieren oder deaktivieren. Wenn aktiviert, startet die Playlist nach dem letzten Video von vorne.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.setLoop({ playerId: 'player-id-123', loopPlaylists: true,});console.log(result);setShuffle
Abschnitt „setShuffle“Playlist-Shuffle aktivieren oder deaktivieren.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.setShuffle({ playerId: 'player-id-123', shufflePlaylist: true,});console.log(result);getVideoLoadedFraction
Abschnitt „getVideoLoadedFraction“Den Anteil des Videos abrufen, der gepuffert wurde. Zuverlässiger als die veralteten Methoden getVideoBytesLoaded/getVideoBytesTotal.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getVideoLoadedFraction({ playerId: 'player-id-123' });console.log(result);getPlayerState
Abschnitt „getPlayerState“Den aktuellen Status des Players abrufen.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getPlayerState({ playerId: 'player-id-123' });console.log(result);getAllPlayersEventsState
Abschnitt „getAllPlayersEventsState“Event-Status aller aktiven Player abrufen. Ideal zum Tracking mehrerer Player-Instanzen.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getAllPlayersEventsState();console.log(result);getCurrentTime
Abschnitt „getCurrentTime“Die aktuelle Wiedergabeposition in Sekunden abrufen.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getCurrentTime({ playerId: 'player-id-123' });console.log(result);toggleFullScreen
Abschnitt „toggleFullScreen“Den Vollbildmodus ein- oder ausschalten.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.toggleFullScreen({ playerId: 'player-id-123', isFullScreen: true,});console.log(result);getPlaybackQuality
Abschnitt „getPlaybackQuality“Die aktuelle Wiedergabequalität abrufen.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getPlaybackQuality({ playerId: 'player-id-123' });console.log(result);setPlaybackQuality
Abschnitt „setPlaybackQuality“Die gewünschte Wiedergabequalität festlegen. Die tatsächliche Qualität kann je nach Netzwerkbedingungen variieren.
import { YoutubePlayer, IPlaybackQuality } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.setPlaybackQuality({ playerId: 'player-id-123', suggestedQuality: IPlaybackQuality.SMALL,});console.log(result);getAvailableQualityLevels
Abschnitt „getAvailableQualityLevels“Liste der verfügbaren Qualitätsstufen für das aktuelle Video abrufen.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getAvailableQualityLevels({ playerId: 'player-id-123' });console.log(result);getDuration
Abschnitt „getDuration“Die Dauer des aktuellen Videos in Sekunden abrufen.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getDuration({ playerId: 'player-id-123' });console.log(result);getVideoUrl
Abschnitt „getVideoUrl“Die YouTube.com-URL des aktuellen Videos abrufen.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getVideoUrl({ playerId: 'player-id-123' });console.log(result);getVideoEmbedCode
Abschnitt „getVideoEmbedCode“Den Embed code für das aktuelle Video abrufen. Gibt den HTML-iframe-Embed code zurück.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getVideoEmbedCode({ playerId: 'player-id-123' });console.log(result);getPlaylist
Abschnitt „getPlaylist“Ein Array der Video-IDs in der aktuellen Playlist abrufen.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getPlaylist({ playerId: 'player-id-123' });console.log(result);getPlaylistIndex
Abschnitt „getPlaylistIndex“Den Index des aktuell abgespielten Videos in der Playlist abrufen.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getPlaylistIndex({ playerId: 'player-id-123' });console.log(result);getIframe
Abschnitt „getIframe“Hol dir das iframe-DOM-Element für den Player. Nur für Web-Plattformen.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getIframe({ playerId: 'player-id-123' });console.log(result);addEventListener
Abschnitt „addEventListener“Einen Event Listener zum Player hinzufügen. Nur Web-Plattform.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
YoutubePlayer.addEventListener({ playerId: 'my-player', eventName: 'onStateChange', listener: (event) => { console.log('Player state:', event.data); },});removeEventListener
Abschnitt „removeEventListener“Einen Event Listener vom Player entfernen. Nur Web-Plattform.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
await YoutubePlayer.removeEventListener({ playerId: 'player-id-123', eventName: 'onReady', listener: (event) => { console.log(event); },});Typ-Referenz
Abschnitt mit dem Titel „Type Reference“PlayerIdOptions
Abschnitt „PlayerIdOptions“export interface PlayerIdOptions { playerId: string;}SeekToOptions
Abschnitt „SeekToOptions“export interface SeekToOptions extends PlayerIdOptions { playerId: string; seconds: number; allowSeekAhead: boolean;}VideoByIdMethodOptions
Abschnitt „VideoByIdMethodOptions“export interface VideoByIdMethodOptions extends PlayerIdOptions { playerId: string; options: IVideoOptionsById;}VideoByUrlMethodOptions
Abschnitt „VideoByUrlMethodOptions“export interface VideoByUrlMethodOptions extends PlayerIdOptions { playerId: string; options: IVideoOptionsByUrl;}PlaylistMethodOptions
Abschnitt „PlaylistMethodOptions“export interface PlaylistMethodOptions extends PlayerIdOptions { playerId: string; playlistOptions: IPlaylistOptions;}PlayVideoAtOptions
Abschnitt „PlayVideoAtOptions“export interface PlayVideoAtOptions extends PlayerIdOptions { playerId: string; index: number;}SetVolumeOptions
Abschnitt „SetVolumeOptions“export interface SetVolumeOptions extends PlayerIdOptions { playerId: string; volume: number;}SetSizeOptions
Abschnitt „SetSizeOptions“export interface SetSizeOptions extends PlayerIdOptions { playerId: string; width: number; height: number;}SetPlaybackRateOptions
Abschnitt „SetPlaybackRateOptions“export interface SetPlaybackRateOptions extends PlayerIdOptions { playerId: string; suggestedRate: number;}SetLoopOptions
Abschnitt „SetLoopOptions“export interface SetLoopOptions extends PlayerIdOptions { playerId: string; loopPlaylists: boolean;}SetShuffleOptions
Abschnitt „SetShuffleOptions“export interface SetShuffleOptions extends PlayerIdOptions { playerId: string; shufflePlaylist: boolean;}ToggleFullScreenOptions
Abschnitt „ToggleFullScreenOptions“export interface ToggleFullScreenOptions extends PlayerIdOptions { playerId: string; isFullScreen: boolean | null | undefined;}Source of Truth
Abschnitt mit dem Titel „Source of Truth“Diese Seite wird aus dem Plugin- src/definitions.ts. Führe den Sync erneut aus, wenn sich der öffentliche API upstream ändert.
Weiter mit Getting Started
Abschnitt „Weiter mit Getting Started“Wenn Sie ... verwenden Erste Schritte Um Dashboard- und API-Operationen zu planen, verbinde es mit Verwendung von @capgo/capacitor-youtube-player für die native Funktion in „Verwendung von @capgo/capacitor-youtube-player“, API Übersicht für Details zur Implementierung in der Übersicht zu API, Einführung für das Implementierungsdetail in der Einleitung, API Keys für die Implementierungsdetails in den API Keys und Geräte für die Implementierungsdetails bei Devices.