Panduan Memulai
Salin prompt setup yang berisi langkah install dan panduan markdown lengkap untuk plugin ini.
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.
Anda bisa menggunakan AI-Assisted Setup kami untuk menginstal plugin ini. Tambahkan skill Capgo ke tool AI Anda dengan command berikut:
bunx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsLalu gunakan prompt berikut:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-youtube-player` plugin in my project.Jika Anda lebih memilih Manual Setup, instal plugin dengan menjalankan perintah berikut dan ikuti petunjuk khusus platform di bawah ini:
bun add @capgo/capacitor-youtube-playerbunx cap syncimport { YoutubePlayer } from '@capgo/capacitor-youtube-player';Mulai cepat
Bagian berjudul “Mulai cepat”import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
await YoutubePlayer.initialize({ playerId: 'my-player', videoId: 'dQw4w9WgXcQ', playerSize: { width: 640, height: 360 }, privacyEnhanced: true});Kesalahan umum
Bagian berjudul “Kesalahan umum”- Listener: hapus handle saat screen unmount.
- Inisialisasi sekali saja: jalankan setup saat app bootstrap.
- Sumber kebenaran tunggal: percayai
src/definitions.tsdi repo GitHub.
Atasi Pemblokiran Referer YouTube di WebView Utama
Bagian berjudul “Mengatasi Pemblokiran Referer YouTube di WebView Utama”Jika YouTube berfungsi di dalam plugin tetapi gagal saat aplikasi yang sama memuat halaman, embed, atau API YouTube melalui WebView utama Capacitor, aktifkan patchRefererHeader pada konfigurasi Capacitor Anda.
Saat diaktifkan, plugin mem-patch Capacitor selama sync/update agar request YouTube yang dicegat menyertakan Referer header.
{ "plugins": { "YoutubePlayer": { "patchRefererHeader": true, "refererHeader": "https://www.youtube.com" } }}- Hanya
youtube.com,youtube-nocookie.com, danyoutu.berequest terdampak. - Request yang sudah mendefinisikan
Refererheader tetap memakai nilai aslinya. refererHeaderopsional dan default kehttps://www.youtube.com.- Didukung di Capacitor
8.xuntuk platform iOS dan Android yang terpasang.
Ringkasan API
Bagian berjudul “Ikhtisar API”initialize
Bagian berjudul “initialize”Inisialisasi instance YouTube player baru.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
await YoutubePlayer.initialize({ playerId: 'my-player', videoId: 'dQw4w9WgXcQ', playerSize: { width: 640, height: 360 }, privacyEnhanced: true});destroy
Bagian berjudul “destroy”Hancurkan instance player dan bebaskan resource.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.destroy({ playerId: 'player-id-123' });console.log(result);stopVideo
Bagian berjudul “stopVideo”Hentikan pemutaran video dan batalkan loading. Gunakan seperlunya - pauseVideo() biasanya lebih disarankan.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.stopVideo({ playerId: 'player-id-123' });console.log(result);playVideo
Bagian berjudul “playVideo”Putar video yang sedang di-cue atau dimuat. Status akhir player akan menjadi PLAYING (1).
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.playVideo({ playerId: 'player-id-123' });console.log(result);pauseVideo
Bagian berjudul “pauseVideo”Jeda video yang sedang diputar. Status akhir player akan menjadi PAUSED (2), kecuali sudah ENDED (0).
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.pauseVideo({ playerId: 'player-id-123' });console.log(result);seekTo
Bagian berjudul “seekTo”Lompat ke waktu tertentu dalam video. Jika player dijeda, tetap dijeda. Jika sedang diputar, pemutaran berlanjut.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.seekTo({ playerId: 'player-id-123', seconds: 10, allowSeekAhead: true,});console.log(result);loadVideoById
Bagian berjudul “loadVideoById”Muat dan putar video menggunakan YouTube ID.
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
Bagian berjudul “cueVideoById”Siapkan video berdasarkan ID tanpa langsung memutarnya. Memuat thumbnail dan menyiapkan player, tapi tidak meminta video sampai playVideo() dipanggil.
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
Bagian berjudul “loadVideoByUrl”Muat dan putar video menggunakan URL lengkap.
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
Bagian berjudul “cueVideoByUrl”Siapkan video berdasarkan URL tanpa langsung memutarnya.
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
Bagian berjudul “cuePlaylist”Cue playlist tanpa memutarnya. Memuat playlist dan menyiapkan video pertama.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.cuePlaylist({ playerId: 'player-id-123', playlistOptions: { listType: 'playlist' },});console.log(result);loadPlaylist
Bagian berjudul “loadPlaylist”Muat dan putar playlist.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.loadPlaylist({ playerId: 'player-id-123', playlistOptions: { listType: 'playlist' },});console.log(result);nextVideo
Bagian berjudul “nextVideo”Putar video berikutnya di playlist.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.nextVideo({ playerId: 'player-id-123' });console.log(result);previousVideo
Bagian berjudul “previousVideo”Putar video sebelumnya di playlist.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.previousVideo({ playerId: 'player-id-123' });console.log(result);playVideoAt
Bagian berjudul “playVideoAt”Putar video tertentu dalam playlist berdasarkan indeks.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.playVideoAt({ playerId: 'player-id-123', index: 1,});console.log(result);Bisukan audio player.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.mute({ playerId: 'player-id-123' });console.log(result);unMute
Bagian berjudul “unMute”Nyalakan kembali audio player.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.unMute({ playerId: 'player-id-123' });console.log(result);isMuted
Bagian berjudul “isMuted”Periksa apakah player sedang dalam mode bisu.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.isMuted({ playerId: 'player-id-123' });console.log(result);setVolume
Bagian berjudul “setVolume”Atur tingkat volume player.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.setVolume({ playerId: 'player-id-123', volume: 0.5,});console.log(result);getVolume
Bagian berjudul “getVolume”Dapatkan tingkat volume player saat ini. Mengembalikan volume meskipun player dalam mode bisu.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getVolume({ playerId: 'player-id-123' });console.log(result);setSize
Bagian berjudul “setSize”Atur dimensi player dalam piksel.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.setSize({ playerId: 'player-id-123', width: 1080, height: 1920,});console.log(result);getPlaybackRate
Bagian berjudul “getPlaybackRate”Dapatkan kecepatan pemutaran saat ini.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getPlaybackRate({ playerId: 'player-id-123' });console.log(result);setPlaybackRate
Bagian berjudul “setPlaybackRate”Atur kecepatan playback.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.setPlaybackRate({ playerId: 'player-id-123', suggestedRate: 1,});console.log(result);getAvailablePlaybackRates
Bagian berjudul “getAvailablePlaybackRates”Dapatkan daftar rate playback yang tersedia untuk video saat ini.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getAvailablePlaybackRates({ playerId: 'player-id-123' });console.log(result);setLoop
Bagian berjudul “setLoop”Aktifkan atau nonaktifkan pengulangan playlist. Saat diaktifkan, playlist akan dimulai ulang dari awal setelah video terakhir.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.setLoop({ playerId: 'player-id-123', loopPlaylists: true,});console.log(result);setShuffle
Bagian berjudul “setShuffle”Aktifkan atau nonaktifkan shuffle playlist.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.setShuffle({ playerId: 'player-id-123', shufflePlaylist: true,});console.log(result);getVideoLoadedFraction
Bagian berjudul “getVideoLoadedFraction”Dapatkan bagian video yang sudah di-buffer. Lebih andal daripada getVideoBytesLoaded/getVideoBytesTotal yang sudah deprecated.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getVideoLoadedFraction({ playerId: 'player-id-123' });console.log(result);getPlayerState
Bagian berjudul “getPlayerState”Dapatkan status player saat ini.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getPlayerState({ playerId: 'player-id-123' });console.log(result);getAllPlayersEventsState
Bagian berjudul “getAllPlayersEventsState”Dapatkan status event untuk semua player yang aktif. Berguna untuk melacak beberapa instance player.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getAllPlayersEventsState();console.log(result);getCurrentTime
Bagian berjudul “getCurrentTime”Dapatkan posisi playback saat ini dalam detik.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getCurrentTime({ playerId: 'player-id-123' });console.log(result);toggleFullScreen
Bagian berjudul “toggleFullScreen”Aktifkan atau nonaktifkan mode fullscreen.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.toggleFullScreen({ playerId: 'player-id-123', isFullScreen: true,});console.log(result);getPlaybackQuality
Bagian berjudul “getPlaybackQuality”Dapatkan kualitas playback saat ini.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getPlaybackQuality({ playerId: 'player-id-123' });console.log(result);setPlaybackQuality
Bagian berjudul “setPlaybackQuality”Atur kualitas playback yang disarankan. Kualitas aktual dapat berbeda tergantung kondisi jaringan.
import { YoutubePlayer, IPlaybackQuality } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.setPlaybackQuality({ playerId: 'player-id-123', suggestedQuality: IPlaybackQuality.SMALL,});console.log(result);getAvailableQualityLevels
Bagian berjudul “getAvailableQualityLevels”Dapatkan daftar level kualitas yang tersedia untuk video saat ini.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getAvailableQualityLevels({ playerId: 'player-id-123' });console.log(result);getDuration
Bagian berjudul “getDuration”Dapatkan durasi video saat ini dalam detik.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getDuration({ playerId: 'player-id-123' });console.log(result);getVideoUrl
Bagian berjudul “getVideoUrl”Dapatkan URL YouTube.com untuk video saat ini.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getVideoUrl({ playerId: 'player-id-123' });console.log(result);getVideoEmbedCode
Bagian berjudul “getVideoEmbedCode”Dapatkan embed code untuk video saat ini. Mengembalikan HTML iframe embed code.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getVideoEmbedCode({ playerId: 'player-id-123' });console.log(result);getPlaylist
Bagian berjudul “getPlaylist”Dapatkan array ID video dalam playlist saat ini.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getPlaylist({ playerId: 'player-id-123' });console.log(result);getPlaylistIndex
Bagian berjudul “getPlaylistIndex”Dapatkan indeks video yang sedang diputar dalam playlist.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getPlaylistIndex({ playerId: 'player-id-123' });console.log(result);getIframe
Bagian berjudul “getIframe”Dapatkan elemen DOM iframe untuk player. Hanya untuk platform web.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getIframe({ playerId: 'player-id-123' });console.log(result);addEventListener
Bagian berjudul “addEventListener”Tambahkan event listener ke player. Hanya untuk platform web.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
YoutubePlayer.addEventListener({ playerId: 'my-player', eventName: 'onStateChange', listener: (event) => { console.log('Player state:', event.data); },});removeEventListener
Bagian berjudul “removeEventListener”Hapus event listener dari player. Hanya untuk platform web.
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
await YoutubePlayer.removeEventListener({ playerId: 'player-id-123', eventName: 'onReady', listener: (event) => { console.log(event); },});Referensi Tipe
Bagian berjudul “Referensi Tipe”PlayerIdOptions
Bagian berjudul “PlayerIdOptions”export interface PlayerIdOptions { playerId: string;}SeekToOptions
Bagian berjudul “SeekToOptions”export interface SeekToOptions extends PlayerIdOptions { playerId: string; seconds: number; allowSeekAhead: boolean;}VideoByIdMethodOptions
Bagian berjudul “VideoByIdMethodOptions”export interface VideoByIdMethodOptions extends PlayerIdOptions { playerId: string; options: IVideoOptionsById;}VideoByUrlMethodOptions
Bagian berjudul “VideoByUrlMethodOptions”export interface VideoByUrlMethodOptions extends PlayerIdOptions { playerId: string; options: IVideoOptionsByUrl;}PlaylistMethodOptions
Bagian berjudul “PlaylistMethodOptions”export interface PlaylistMethodOptions extends PlayerIdOptions { playerId: string; playlistOptions: IPlaylistOptions;}PlayVideoAtOptions
Bagian berjudul “PlayVideoAtOptions”export interface PlayVideoAtOptions extends PlayerIdOptions { playerId: string; index: number;}SetVolumeOptions
Bagian berjudul “SetVolumeOptions”export interface SetVolumeOptions extends PlayerIdOptions { playerId: string; volume: number;}SetSizeOptions
Bagian berjudul “SetSizeOptions”export interface SetSizeOptions extends PlayerIdOptions { playerId: string; width: number; height: number;}SetPlaybackRateOptions
Bagian berjudul “SetPlaybackRateOptions”export interface SetPlaybackRateOptions extends PlayerIdOptions { playerId: string; suggestedRate: number;}SetLoopOptions
Bagian berjudul “SetLoopOptions”export interface SetLoopOptions extends PlayerIdOptions { playerId: string; loopPlaylists: boolean;}SetShuffleOptions
Bagian berjudul “SetShuffleOptions”export interface SetShuffleOptions extends PlayerIdOptions { playerId: string; shufflePlaylist: boolean;}ToggleFullScreenOptions
Bagian berjudul “ToggleFullScreenOptions”export interface ToggleFullScreenOptions extends PlayerIdOptions { playerId: string; isFullScreen: boolean | null | undefined;}Sumber Kebenaran
Bagian berjudul “Sumber Kebenaran”Halaman ini dibuat dari plugin src/definitions.ts. Jalankan ulang sync saat API publik berubah di upstream.
Lanjutkan dari Getting Started
Bagian berjudul “Lanjutkan dari Getting Started”Jika Anda menggunakan Panduan Memulai untuk merencanakan operasi dashboard dan API, hubungkan dengan Menggunakan @capgo/capacitor-youtube-player untuk kapabilitas native saat menggunakan @capgo/capacitor-youtube-player, Ringkasan API untuk detail implementasi di API Overview, Pendahuluan untuk detail implementasi di Introduction, Kunci API untuk detail implementasi di API Keys, dan Perangkat untuk detail implementasi di Devices.