← Cloudflare Stream / stream / uploading-videos
Nahrání pomocí odkazu
Pokud máte videa uložená v cloudovém úložišti (R2, S3, GCS) nebo je hostuje služba, která poskytuje odkaz ke stažení, můžete předat jeho URL adresu. Stream soubor stáhne za vás.
Vytvořte POST požadavek na Stream API pomocí odkazu na vaše video.
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/copyconst 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',
});Podívejte se na celý Stream Referenční dokumentace REST API a SDK kde najdete podrobnosti o používání REST API z externích aplikací, včetně předpřipravených SDK pro externí aplikace v TypeScriptu, Pythonu nebo Go.
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"
}
}Podívejte se na celý Referenční dokumentace API pro Workers Stream binding.
Pokud máte videa uložená v cloudovém úložišti, můžete předat HTTP odkaz na soubor a Stream jej stáhne za vás.
Kontrola stavu videa
Stream musí video stáhnout a zakódovat, což může trvat několik sekund až několik minut podle délky videa.
Když readyToStream vrátí hodnotu true, vaše video je připraveno ke streamování.
Volitelně můžete použít webhooky který vás upozorní, jakmile bude video připraveno ke streamování, nebo pokud dojde k chybě.
{
"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": []
}Po nahrání videa můžete použít video uid uvedené ve výše uvedené příkladové odpovědi k přehrání videa pomocí Přehrávač videa Stream.
Pokud používáte vlastní přehrávač nebo video vykreslujete v mobilní aplikaci, přečtěte si použití vlastního přehrávače.