Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

リンクからアップロードする

最終更新 Markdown で表示Agent セットアップ

クラウドストレージバケット(R2、S3、GCS)に動画がある場合、またはダウンロードリンクを公開しているサービスでホストしている場合は、その URL を渡せます。Stream が代わりにファイルを取得します。

Stream API に、動画へのリンクを付けて POST リクエストを送ります。

		curl \
		--data '{"url":"https://pub-2da57dbfcf5f4369863991d59747d686.r2.dev/acadia.mp4","meta":{"name":"My First Stream Video"}}' \
		--header "Authorization: Bearer <API_TOKEN>" \
		https://api.cloudflare.com/client/v4/accounts/{account_id}/stream/copy
const client = new Cloudflare({
	apiEmail: process.env['CLOUDFLARE_EMAIL'], // This is the default and can be omitted
	apiKey: process.env['CLOUDFLARE_API_KEY'], // This is the default and can be omitted
});

const video = await client.stream.copy.create({
	account_id: '<ACCOUNT_ID>',
	url: 'https://pub-2da57dbfcf5f4369863991d59747d686.r2.dev/acadia.mp4',
});

外部アプリケーションから REST API を使う方法、および TypeScript、Python、Go 向けの事前生成 SDK については、Stream の REST API と SDK リファレンス を参照してください。

export default {
	async fetch(request, env, ctx): Promise<Response> {
		// upload a video with a link
		const videoDetails = await env.STREAM.upload(
			"https://pub-2da57dbfcf5f4369863991d59747d686.r2.dev/acadia.mp4",
			// (optional) attach metadata
			{ meta: { name: "My First Stream Video" } }
		);

		// return a Workers response
		return new Response(
			JSON.stringify(videoDetails),
		);
	},

} satisfies ExportedHandler<{ STREAM: StreamBinding }>;
{
	"$schema": "node_modules/wrangler/config-schema.json",
	"name": "<ENTER_WORKER_NAME>",
	"main": "src/index.ts",
	"compatibility_date": "2026-04-14",
	"observability": {
		"enabled": true
	},
	"stream": {
		"binding": "STREAM"
	}
}

詳細は Workers Stream バインディング API リファレンス を参照してください。

クラウドストレージバケットに動画がある場合は、ファイルの HTTP リンクを渡せます。Stream が代わりにファイルを取得します。

動画の状態を確認する

Stream は動画をダウンロードしてエンコードします。所要時間は動画の長さにより、数秒から数分です。

readyToStream の値が true になると、ストリーミングの準備ができています。

任意で ウェブフック を使うと、ストリーミングの準備ができたとき、またはエラーが起きたときに通知を受け取れます。

{
  "result": {
    "uid": "6b9e68b07dfee8cc2d116e4c51d6a957",
    "thumbnail": "https://customer-f33zs165nr7gyfy4.cloudflarestream.com/6b9e68b07dfee8cc2d116e4c51d6a957/thumbnails/thumbnail.jpg",
    "thumbnailTimestampPct": 0,
    "readyToStream": false,
    "status": {
      "state": "downloading"
    },
    "meta": {
      "downloaded-from": "https://pub-2da57dbfcf5f4369863991d59747d686.r2.dev/acadia.mp4",
      "name": "My First Stream Video"
    },
    "created": "2020-10-16T20:20:17.872170843Z",
    "modified": "2020-10-16T20:20:17.872170843Z",
    "size": 9032701,
    "preview": "https://customer-f33zs165nr7gyfy4.cloudflarestream.com/6b9e68b07dfee8cc2d116e4c51d6a957/watch",
    "allowedOrigins": [],
    "requireSignedURLs": false,
    "uploaded": "2020-10-16T20:20:17.872170843Z",
    "uploadExpiry": null,
    "maxSizeBytes": 0,
    "maxDurationSeconds": 0,
    "duration": -1,
    "input": {
      "width": -1,
      "height": -1
    },
    "playback": {
      "hls": "https://customer-f33zs165nr7gyfy4.cloudflarestream.com/6b9e68b07dfee8cc2d116e4c51d6a957/manifest/video.m3u8",
      "dash": "https://customer-f33zs165nr7gyfy4.cloudflarestream.com/6b9e68b07dfee8cc2d116e4c51d6a957/manifest/video.mpd"
    },
    "watermark": null
  },
  "success": true,
  "errors": [],
  "messages": []
}

アップロード後は、上の応答例に示されている動画の uid を使って、Stream ビデオプレーヤー で再生できます。

独自のプレーヤーを使う場合や、モバイルアプリで動画を描画する場合は、独自のプレーヤーを使う を参照してください。

役に立ちましたか?