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 „Installation“Du kannst unser KI-gestütztes Setup nutzen, um das Plugin zu installieren. Füge die Capgo Skills mit dem folgenden Befehl deinem KI-Tool hinzu:
bunx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsNutze dann 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 bevorzugst, 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 „Quick start“import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
await YoutubePlayer.initialize({ playerId: 'my-player', videoId: 'dQw4w9WgXcQ', playerSize: { width: 640, height: 360 }, privacyEnhanced: true});Häufige Stolperfallen
Abschnitt „Häufige Fallstricke“- Listener: Handles beim Unmounten von Screens entfernen.
- Einmalige Initialisierung: Setup beim App-Bootstrap ausführen.
- Single Source of Truth: Vertrauen
src/definitions.tsim GitHub Repo.
YouTube-Referer-Blocking in der Main-WebView beheben
Abschnitt mit dem Titel „YouTube-Referer-Blocking in der Main-WebView beheben“Falls YouTube innerhalb des Plugins funktioniert, aber fehlschlägt, wenn dieselbe App YouTube-Seiten, Embeds oder APIs über die Main-WebView von Capacitor lädt, aktiviere patchRefererHeader in deiner Capacitor-Konfiguration.
Wenn aktiviert, patcht das Plugin Capacitor beim Sync/Update, 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 hat standardmäßig den Werthttps://www.youtube.com.- Verfügbar für Capacitor
8.xfür installierte iOS- und Android-Plattformen.
API Übersicht
Abschnitt „API Übersicht“initialize
Abschnitt „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“Videoabspielung stoppen und Laden abbrechen. Nur sparsam verwenden – pauseVideo() ist in der Regel die bessere Wahl.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.stopVideo({ playerId: 'player-id-123' });console.log(result);playVideo
Abschnitt mit dem Titel „playVideo“Spielt das aktuell eingestellte oder geladene Video ab. Der endgültige Player-Zustand wird PLAYING (1) sein.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.playVideo({ playerId: 'player-id-123' });console.log(result);pauseVideo
Abschnitt mit dem Titel „pauseVideo“Pausiert das aktuell abspielende Video. Der endgültige Player-Zustand ist PAUSED (2), es sei denn, er ist bereits ENDED (0).
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.pauseVideo({ playerId: 'player-id-123' });console.log(result);Zum gewünschten Zeitpunkt im Video springen. Ist der Player pausiert, bleibt er pausiert. Läuft er, wird er fortgesetzt.
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 mit dem Titel „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 mit dem Titel „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 mit dem Titel „loadVideoByUrl“Video per vollständiger 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 mit dem Titel „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 mit dem Titel „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 mit dem Titel „loadPlaylist“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 mit dem Titel „nextVideo“Das nächste Video in der Playlist abspielen.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.nextVideo({ playerId: 'player-id-123' });console.log(result);previousVideo
Abschnitt mit dem Titel „previousVideo“Das vorherige Video in der Playlist abspielen.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.previousVideo({ playerId: 'player-id-123' });console.log(result);playVideoAt
Abschnitt mit dem Titel „playVideoAt“Spielt ein bestimmtes Video in der Playlist über den Index ab.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.playVideoAt({ playerId: 'player-id-123', index: 1,});console.log(result);Schaltet den Ton des Players stumm.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.mute({ playerId: 'player-id-123' });console.log(result);Schaltet den Ton des Players wieder ein.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.unMute({ playerId: 'player-id-123' });console.log(result);isMuted
Abschnitt „isMuted“Prüft, 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 mit dem Titel „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 mit dem Titel „getVolume“Die aktuelle Lautstärke des Players abrufen. Gibt die Lautstärke auch bei stummgeschaltetem Player zurück.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getVolume({ playerId: 'player-id-123' });console.log(result);Die Player-Dimensionen 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 mit dem Titel „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 mit dem Titel „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 mit dem Titel „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);Playlist-Loop aktivieren oder deaktivieren. Wenn aktiviert, startet die Playlist nach dem letzten Video von vorn.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.setLoop({ playerId: 'player-id-123', loopPlaylists: true,});console.log(result);setShuffle
Abschnitt mit dem Titel „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 mit dem Titel „getVideoLoadedFraction“Gibt den Anteil des Videos an, der gepuffert wurde. Zuverlässiger als die veralteten getVideoBytesLoaded/getVideoBytesTotal-Methoden.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getVideoLoadedFraction({ playerId: 'player-id-123' });console.log(result);getPlayerState
Abschnitt mit dem Titel „getPlayerState“Ruft den aktuellen Status des Players ab.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getPlayerState({ playerId: 'player-id-123' });console.log(result);getAllPlayersEventsState
Abschnitt mit dem Titel „getAllPlayersEventsState“Ruft die Event-States aller aktiven Player ab. Nützlich zum Tracking mehrerer Player-Instanzen.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getAllPlayersEventsState();console.log(result);getCurrentTime
Abschnitt mit dem Titel „getCurrentTime“Gibt die aktuelle Abspielposition in Sekunden zurück.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getCurrentTime({ playerId: 'player-id-123' });console.log(result);toggleFullScreen
Abschnitt mit dem Titel „toggleFullScreen“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 mit dem Titel „getPlaybackQuality“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 mit dem Titel “setPlaybackQuality”Legt die empfohlene Wiedergabequalität fest. Die tatsächliche Qualität kann je nach Netzwerkbedingungen abweichen.
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 mit dem Titel “getAvailableQualityLevels”Ruft die Liste der verfügbaren Qualitätsstufen für das aktuelle Video ab.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getAvailableQualityLevels({ playerId: 'player-id-123' });console.log(result);getDuration
Abschnitt mit dem Titel „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 mit dem Titel “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 mit dem Titel „getVideoEmbedCode“Ruft den code-Embed-Code für das aktuelle Video ab. Gibt den HTML-iframe-Embed-Code code zurück.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getVideoEmbedCode({ playerId: 'player-id-123' });console.log(result);getPlaylist
Abschnitt mit dem Titel „getPlaylist“Ein Array der Video-IDs aus 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 mit dem Titel „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 mit dem Titel „getIframe“Ruft das iframe-DOM-Element für den Player ab. Nur für die Web-Plattform.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getIframe({ playerId: 'player-id-123' });console.log(result);addEventListener
Abschnitt „addEventListener“Fügt dem Player einen Event-Listener hinzu. Nur für die 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“Entfernt einen Event-Listener vom Player. Nur für die Web-Plattform.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
await YoutubePlayer.removeEventListener({ playerId: 'player-id-123', eventName: 'onReady', listener: (event) => { console.log(event); },});Typreferenz
Abschnitt mit dem Titel „Typreferenz“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 mit dem Titel „SetVolumeOptions“export interface SetVolumeOptions extends PlayerIdOptions { playerId: string; volume: number;}SetSizeOptions
Abschnitt mit dem Titel „SetSizeOptions“export interface SetSizeOptions extends PlayerIdOptions { playerId: string; width: number; height: number;}SetPlaybackRateOptions
Abschnitt mit dem Titel „SetPlaybackRateOptions“export interface SetPlaybackRateOptions extends PlayerIdOptions { playerId: string; suggestedRate: number;}SetLoopOptions
Abschnitt mit dem Titel „SetLoopOptions“export interface SetLoopOptions extends PlayerIdOptions { playerId: string; loopPlaylists: boolean;}SetShuffleOptions
Abschnitt mit dem Titel „SetShuffleOptions“export interface SetShuffleOptions extends PlayerIdOptions { playerId: string; shufflePlaylist: boolean;}ToggleFullScreenOptions
Abschnitt mit dem Titel „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 generiert src/definitions.ts. Führe den Sync erneut aus, wenn sich das öffentliche API upstream ändert.
Weiter geht's nach Getting Started
Abschnitt: „Weiter geht’s mit Getting Started“Wenn du es nutzt Erste Schritte um Dashboard- und API-Operationen zu planen, verbinde es mit Nutzung von @capgo/capacitor-youtube-player für die native Funktion bei der Nutzung von @capgo/capacitor-youtube-player, API Übersicht für Details zur Implementierung im API Overview, Einführung für die Implementierungsdetails in der Einleitung, API Schlüssel für das Implementierungsdetail in API Keys und Geräte für das Implementierungsdetail in Devices.