コンテンツにスキップ

使用例

cURLでの使用例

APIキー認証を使用した例

# ファイル一覧取得(1ページ目、10件ずつ、公開ファイルのみ)
curl "https://filma.biz/filmaapi/storage?api_key=your_api_key&page=1&per_page=10"

# ファイル一覧取得(全ファイル表示 - fullaccess権限のみ)
curl "https://filma.biz/filmaapi/storage?api_key=your_api_key&page=1&per_page=10&show_all=true"

# ファイル再生情報取得(公開ファイルのみ)
curl "https://filma.biz/filmaapi/storage/12345?api_key=your_api_key"

# ファイル再生情報取得(全ファイル表示 - fullaccess権限のみ)
curl "https://filma.biz/filmaapi/storage/12345?api_key=your_api_key&show_all=true"

# ファイルメタデータ取得(公開ファイルのみ)
curl "https://filma.biz/filmaapi/storage/metadata/12345?api_key=your_api_key"

# ファイルメタデータ取得(全ファイル表示 - fullaccess権限のみ)
curl "https://filma.biz/filmaapi/storage/metadata/12345?api_key=your_api_key&show_all=true"

# フォルダ一覧取得
curl "https://filma.biz/filmaapi/storage/folders?api_key=your_api_key"

# フォルダ詳細取得
curl "https://filma.biz/filmaapi/storage/folders/100?api_key=your_api_key"

# ファイル削除
curl -X DELETE "https://filma.biz/filmaapi/storage/12345?api_key=your_api_key"

# プレイヤー表示(公開ファイルのみ - デフォルト)
curl "https://filma.biz/filmaapi/player/12345?api_key=your_api_key"

# プレイヤー表示(全ファイル表示 - fullaccess権限のみ)
curl "https://filma.biz/filmaapi/player/12345?api_key=your_api_key&show_all=true"

# DASH配信(公開ファイルのみ)
curl "https://filma.biz/filmaapi/dash/12345?api_key=your_api_key"

# DASH配信(全ファイル表示 - fullaccess権限のみ)
curl "https://filma.biz/filmaapi/dash/12345?api_key=your_api_key&show_all=true"

JWT認証を使用した例

# 1. APIキーでJWTトークンを発行(JWTトークンは自動的にCookieとしても設定される)
curl -X POST "https://filma.biz/filmaapi/token" \
  -H "X-Api-Key: your_api_key" \
  -H "Content-Type: application/json"

# 2. 発行されたJWTトークンを使用してAPIアクセス(Authorization header)
curl -H "Authorization: Bearer eyJhbGciOiJIUzI1NiJ9..." \
  "https://filma.biz/filmaapi/storage?page=1&per_page=10"

# 2-2. または、自動設定されたCookieを使用してアクセス
curl -H "Cookie: filmajwt=eyJhbGciOiJIUzI1NiJ9..." \
  "https://filma.biz/filmaapi/storage?page=1&per_page=10"

# 3. ファイル再生情報取得(JWT認証)
curl -H "Authorization: Bearer eyJhbGciOiJIUzI1NiJ9..." \
  "https://filma.biz/filmaapi/storage/12345"

# 4. ファイルメタデータ取得(JWT認証)
curl -H "Authorization: Bearer eyJhbGciOiJIUzI1NiJ9..." \
  "https://filma.biz/filmaapi/storage/metadata/12345"

# 5. プレイヤー表示(JWT認証)
curl -H "Authorization: Bearer eyJhbGciOiJIUzI1NiJ9..." \
  "https://filma.biz/filmaapi/player/12345"

# 6. DASH配信(JWT認証)
curl -H "Authorization: Bearer eyJhbGciOiJIUzI1NiJ9..." \
  "https://filma.biz/filmaapi/dash/12345"

# 7. HLS配信(JWT認証)
curl -H "Authorization: Bearer eyJhbGciOiJIUzI1NiJ9..." \
  "https://filma.biz/filmaapi/hls/12345"

# 8. トークンリフレッシュ
curl -X POST "https://filma.biz/filmaapi/token/refresh" \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiJ9..." \
  -H "Content-Type: application/json"

# 9. トークン情報取得
curl -H "Authorization: Bearer eyJhbGciOiJIUzI1NiJ9..." \
  "https://filma.biz/filmaapi/token"

管理画面での自動JWT認証(Cookie)

curl -H "Cookie: filmajwt=eyJhbGciOiJIUzI1NiJ9..." \
  "https://filma.biz/filmaapi/storage"

JavaScriptでの使用例

// 1. APIキーでJWTトークンを発行(ブラウザ環境では自動的にCookieが設定される)
const tokenResponse = await fetch('/filmaapi/token', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'your_api_key',
    'Content-Type': 'application/json'
  }
});
const tokenData = await tokenResponse.json();
console.log('発行されたJWTトークン:', tokenData.token);

// 2. JWTトークンを使ってAPIアクセス(Cookie認証 - 自動的に送信される)
const listResponse = await fetch('/filmaapi/storage?page=1&per_page=20', {
  credentials: 'include'  // Cookieを含めて送信
});
const listData = await listResponse.json();

// 3. または、Authorization headerを使用
const listResponseWithHeader = await fetch('/filmaapi/storage?page=1&per_page=20', {
  headers: {
    'Authorization': `Bearer ${tokenData.token}`
  }
});
const listDataWithHeader = await listResponseWithHeader.json();

console.log('総件数:', listData.pagination.total_count);
console.log('ファイル一覧:', listData.items);
// 各ファイルのスクリーンショットを表示
listData.items.forEach(file => {
  console.log(`ファイル ${file.filename} のスクリーンショット:`, file.screen_shots);
  console.log(`公開状態: ${file.published_status_text}`);
  if (file.published_until) {
    console.log(`公開期限: ${file.published_until}`);
  }
});

// ファイル一覧取得(全ファイル表示 - fullaccess権限のみ)
const allListResponse = await fetch('/filmaapi/storage?api_key=your_api_key&page=1&per_page=20&show_all=true');
const allListData = await allListResponse.json();

console.log('全ファイル総件数:', allListData.pagination.total_count);
console.log('全ファイル一覧:', allListData.items);

// ファイル再生情報取得(公開ファイルのみ)
const playerResponse = await fetch('/filmaapi/storage/12345?api_key=your_api_key');
const playerData = await playerResponse.json();

console.log('再生URL:', playerData.url);
console.log('埋め込みコード:', playerData.embed_code);
console.log('スクリーンショット:', playerData.screen_shots);

// ファイル再生情報取得(全ファイル表示 - fullaccess権限のみ)
const allPlayerResponse = await fetch('/filmaapi/storage/12345?api_key=your_api_key&show_all=true');
const allPlayerData = await allPlayerResponse.json();

console.log('全ファイル再生URL:', allPlayerData.url);
console.log('全ファイル埋め込みコード:', allPlayerData.embed_code);

// ファイルメタデータ取得(公開ファイルのみ)
const metadataResponse = await fetch('/filmaapi/storage/metadata/12345?api_key=your_api_key');
const metadataData = await metadataResponse.json();

// ファイルメタデータ取得(全ファイル表示 - fullaccess権限のみ)
const allMetadataResponse = await fetch('/filmaapi/storage/metadata/12345?api_key=your_api_key&show_all=true');
const allMetadataData = await allMetadataResponse.json();

console.log('メタデータ:', metadataData);
console.log('スクリーンショット:', metadataData.screen_shots);
console.log('プレイヤーデータ:', metadataData.player_data);
console.log('公開状態:', metadataData.published_status_text);
console.log('公開期限考慮後の公開状態:', metadataData.published_with_expiry);

console.log('全ファイルメタデータ:', allMetadataData);
console.log('全ファイルスクリーンショット:', allMetadataData.screen_shots);
console.log('全ファイルプレイヤーデータ:', allMetadataData.player_data);
console.log('全ファイル公開状態:', allMetadataData.published_status_text);

// フォルダ一覧取得
const foldersResponse = await fetch('/filmaapi/storage/folders?api_key=your_api_key');
const foldersData = await foldersResponse.json();

console.log('フォルダ一覧:', foldersData);

// フォルダ詳細取得
const folderResponse = await fetch('/filmaapi/storage/folders/100?api_key=your_api_key');
const folderData = await folderResponse.json();

console.log('フォルダ詳細:', folderData);

// プレイヤー表示(公開ファイルのみ - デフォルト)
window.open('/filmaapi/player/12345?api_key=your_api_key', '_blank');

// プレイヤー表示(全ファイル表示 - fullaccess権限のみ)
window.open('/filmaapi/player/12345?api_key=your_api_key&show_all=true', '_blank');