メインコンテンツへスキップ

スタートガイド

GitHub

AIアシストによるセットアップでプラグインをインストールできます。以下のコマンドを使用して、お使いのAIツールに Capgo のスキルを追加してください:

ターミナル
bunx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

次に、以下のプロンプトを使用します:

Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-youtube-player` plugin in my project.

手動セットアップを希望する場合は、以下のコマンドを実行してプラグインをインストールし、下記のプラットフォーム別の手順に従ってください:

ターミナル
bun add @capgo/capacitor-youtube-player
bunx cap sync
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
await YoutubePlayer.initialize({
playerId: 'my-player',
videoId: 'dQw4w9WgXcQ',
playerSize: { width: 640, height: 360 },
privacyEnhanced: true
});
  • リスナー: 画面がアンマウントされたらハンドルを削除します。
  • 一度だけ初期化: アプリの起動時にセットアップを実行します。
  • 信頼できる情報源: 信頼 src/definitions.ts GitHub リポジトリ内。

メイン WebView での YouTube リファラーブロックの修正

「メイン WebView での YouTube Referer ブロッキングの修正」セクション

プラグイン内では YouTube が動作するが、同じアプリで Capacitor のメイン WebView 経由で YouTube のページ、埋め込み、または API を読み込む際に失敗する場合は、 patchRefererHeader を Capacitor の設定で有効にしてください。

有効にすると、プラグインは sync/update 時に Capacitor をパッチ適用し、インターセプトされた YouTube リクエストに有効な Referer header.

{
"plugins": {
"YoutubePlayer": {
"patchRefererHeader": true,
"refererHeader": "https://www.youtube.com"
}
}
}
  • のみ youtube.com, youtube-nocookie.comや youtu.be リクエストが影響を受けます。
  • すでに定義済みの Referer header は元の値を保持します。
  • refererHeader は任意で、デフォルトは https://www.youtube.com.
  • Capacitor でサポートされています 8.x インストール済みの iOS および Android プラットフォーム向けです。

新しい YouTube プレイヤーインスタンスを初期化します。

import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
await YoutubePlayer.initialize({
playerId: 'my-player',
videoId: 'dQw4w9WgXcQ',
playerSize: { width: 640, height: 360 },
privacyEnhanced: true
});

プレイヤーインスタンスを破棄してリソースを解放します。

import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.destroy({ playerId: 'player-id-123' });
console.log(result);

動画の再生を停止し、読み込みをキャンセルします。 頻繁に使用しないでください - 通常は pauseVideo() の方が推奨されます。

import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.stopVideo({ playerId: 'player-id-123' });
console.log(result);

キューに登録されている、または読み込まれた動画を再生します。 最終的なプレイヤー状態は PLAYING (1) になります。

import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.playVideo({ playerId: 'player-id-123' });
console.log(result);

現在再生中の動画を一時停止します。 最終的なプレイヤー状態は PAUSED (2) になります(既に ENDED (0) の場合は除く)。

import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.pauseVideo({ playerId: 'player-id-123' });
console.log(result);

動画内の特定の時間にシークします。 プレイヤーが一時停止中の場合はそのままで、再生中の場合は再生を続けます。

import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.seekTo({
playerId: 'player-id-123',
seconds: 10,
allowSeekAhead: true,
});
console.log(result);

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);

IDを指定して動画をキューイングします(再生はしません)。 サムネイルを読み込み、プレイヤーを準備しますが、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);

完全なURLを指定して動画をロードし再生します。

import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.loadVideoByUrl({
playerId: 'player-id-123',
options: { mediaContentUrl: 'https://example.com' },
});
console.log(result);

URLを指定して動画をキューイングします(再生はしません)。

import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.cueVideoByUrl({
playerId: 'player-id-123',
options: { mediaContentUrl: 'https://example.com' },
});
console.log(result);

再生せずにプレイリストをキューイングします。 プレイリストを読み込み、最初の動画を準備します。

import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.cuePlaylist({
playerId: 'player-id-123',
playlistOptions: { listType: 'playlist' },
});
console.log(result);

プレイリストを読み込んで再生します。

import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.loadPlaylist({
playerId: 'player-id-123',
playlistOptions: { listType: 'playlist' },
});
console.log(result);

プレイリストの次の動画を再生します。

import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.nextVideo({ playerId: 'player-id-123' });
console.log(result);

プレイリストの前の動画を再生します。

import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.previousVideo({ playerId: 'player-id-123' });
console.log(result);

インデックスを指定して、プレイリスト内の特定の動画を再生します。

import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.playVideoAt({
playerId: 'player-id-123',
index: 1,
});
console.log(result);

プレイヤーの音声をミュートします。

import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.mute({ playerId: 'player-id-123' });
console.log(result);

プレイヤーのミュートを解除します。

import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.unMute({ playerId: 'player-id-123' });
console.log(result);

プレイヤーが現在ミュートされているか確認します。

import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.isMuted({ playerId: 'player-id-123' });
console.log(result);

プレイヤーの音量レベルを設定します。

import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.setVolume({
playerId: 'player-id-123',
volume: 0.5,
});
console.log(result);

現在のプレイヤーの音量レベルを取得します。 ミュート中でも音量を返します。

import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getVolume({ playerId: 'player-id-123' });
console.log(result);

プレイヤーのサイズをピクセル単位で設定します。

import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.setSize({
playerId: 'player-id-123',
width: 1080,
height: 1920,
});
console.log(result);

現在の再生速度を取得します。

import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getPlaybackRate({ playerId: 'player-id-123' });
console.log(result);

再生速度を設定します。

import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.setPlaybackRate({
playerId: 'player-id-123',
suggestedRate: 1,
});
console.log(result);

現在の動画で利用可能な再生速度のリストを取得します。

import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getAvailablePlaybackRates({ playerId: 'player-id-123' });
console.log(result);

プレイリストのループを有効または無効にします。 有効にすると、最後の動画が終わった後にプレイリストが最初から再生されます。

import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.setLoop({
playerId: 'player-id-123',
loopPlaylists: true,
});
console.log(result);

プレイリストのシャッフルを有効または無効にします。

import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.setShuffle({
playerId: 'player-id-123',
shufflePlaylist: true,
});
console.log(result);

バッファリングされた動画の割合を取得します。 非推奨の getVideoBytesLoaded/getVideoBytesTotal よりも信頼性が高いです。

import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getVideoLoadedFraction({ playerId: 'player-id-123' });
console.log(result);

プレイヤーの現在の状態を取得します。

import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getPlayerState({ playerId: 'player-id-123' });
console.log(result);

アクティブなすべてのプレイヤーのイベント状態を取得します。 複数のプレイヤーインスタンスを追跡する際に便利です。

import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getAllPlayersEventsState();
console.log(result);

現在の再生位置を秒単位で取得します。

import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getCurrentTime({ playerId: 'player-id-123' });
console.log(result);

全画面モードをオンまたはオフに切り替えます。

import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.toggleFullScreen({
playerId: 'player-id-123',
isFullScreen: true,
});
console.log(result);

現在の再生品質を取得します。

import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getPlaybackQuality({ playerId: 'player-id-123' });
console.log(result);

推奨される再生品質を設定します。 実際の品質はネットワーク状況によって異なる場合があります。

import { YoutubePlayer, IPlaybackQuality } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.setPlaybackQuality({
playerId: 'player-id-123',
suggestedQuality: IPlaybackQuality.SMALL,
});
console.log(result);

現在の動画で利用可能な品質レベルのリストを取得します。

import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getAvailableQualityLevels({ playerId: 'player-id-123' });
console.log(result);

現在の動画の再生時間を秒単位で取得します。

import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getDuration({ playerId: 'player-id-123' });
console.log(result);

現在の動画の YouTube.com URL を取得します。

import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getVideoUrl({ playerId: 'player-id-123' });
console.log(result);

現在の動画の埋め込みcodeを取得します。 HTML iframe埋め込みcodeを返します。

import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getVideoEmbedCode({ playerId: 'player-id-123' });
console.log(result);

現在のプレイリストに含まれる動画 ID の配列を取得します。

import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getPlaylist({ playerId: 'player-id-123' });
console.log(result);

プレイリスト内で現在再生中の動画のインデックスを取得します。

import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getPlaylistIndex({ playerId: 'player-id-123' });
console.log(result);

プレイヤーの iframe DOM 要素を取得します。 Web プラットフォームのみ対応。

import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
const result = await YoutubePlayer.getIframe({ playerId: 'player-id-123' });
console.log(result);

プレイヤーにイベントリスナーを追加します。 Web プラットフォームのみ対応。

import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
YoutubePlayer.addEventListener({
playerId: 'my-player',
eventName: 'onStateChange',
listener: (event) => {
console.log('Player state:', event.data);
},
});

プレイヤーからイベントリスナーを削除します。 Web プラットフォームのみ対応。

import { YoutubePlayer } from '@capgo/capacitor-youtube-player';
await YoutubePlayer.removeEventListener({
playerId: 'player-id-123',
eventName: 'onReady',
listener: (event) => {
console.log(event);
},
});
export interface PlayerIdOptions {
playerId: string;
}
export interface SeekToOptions extends PlayerIdOptions {
playerId: string;
seconds: number;
allowSeekAhead: boolean;
}
export interface VideoByIdMethodOptions extends PlayerIdOptions {
playerId: string;
options: IVideoOptionsById;
}
export interface VideoByUrlMethodOptions extends PlayerIdOptions {
playerId: string;
options: IVideoOptionsByUrl;
}
export interface PlaylistMethodOptions extends PlayerIdOptions {
playerId: string;
playlistOptions: IPlaylistOptions;
}
export interface PlayVideoAtOptions extends PlayerIdOptions {
playerId: string;
index: number;
}
export interface SetVolumeOptions extends PlayerIdOptions {
playerId: string;
volume: number;
}
export interface SetSizeOptions extends PlayerIdOptions {
playerId: string;
width: number;
height: number;
}
export interface SetPlaybackRateOptions extends PlayerIdOptions {
playerId: string;
suggestedRate: number;
}
export interface SetLoopOptions extends PlayerIdOptions {
playerId: string;
loopPlaylists: boolean;
}
export interface SetShuffleOptions extends PlayerIdOptions {
playerId: string;
shufflePlaylist: boolean;
}
export interface ToggleFullScreenOptions extends PlayerIdOptions {
playerId: string;
isFullScreen: boolean | null | undefined;
}

このページはプラグインの src/definitions.tsから生成されています。upstream で公開 API が変更されたら、再度 sync を実行してください。

Getting Startedの続きを進める

「Getting Started からの続き」セクション

使用している場合 スタートガイド ダッシュボードと API の運用を計画するには、これを次と連携させます @capgo/capacitor-youtube-playerの使い方 「@capgo/capacitor-youtube-playerの使い方」のネイティブ機能については、 API の概要 「API の概要」の実装の詳細については、 はじめに 「はじめに」における実装の詳細については、 API キー および「API Keys」の実装の詳細については、 デバイス 実装の詳細については Devices を参照してください。