1. Cloudflare / Cloudflare Stream ใจใฏ
Cloudflare ใฏใฐใญใผใใซCDNใจใปใญใฅใชใใฃๅบ็คใๆไพใ
Cloudflare Stream ใฏใใขใใใญใผใโไฟๅญโ่ชๅใจใณใณใผใโ้
ไฟกใ1ใคใฎAPIใงๆไพใใๅ็ปๅบ็คใงใใๆ้ใฏใไฟๅญ๏ผminutes stored๏ผ๏ผ้
ไฟก๏ผminutes delivered๏ผใใฎใฟใจใทใณใใซใงใใจใณใณใผใ่ฒป็จใๅธฏๅ่ฟฝๅ ่ชฒ้ใฏใชใใ(Cloudflare Docs, Cloudflare)
2. APIใใผใฏใณใฎๅๅพๆนๆณ
- ใใใทใฅใใผใใธใญใฐใคใณ โ My Profile โ API Tokens โ Create Tokenใ
-
Create Custom Token ใ้ธใณใPermissions ใซ
Account โ Stream โ Edit๏ผ็จ้ใซๅฟใใฆ Read/Write๏ผใไปไธใ - Accounts ใงๅฏพ่ฑกใขใซใฆใณใใๆๅฎ โ Create Tokenใ
- ่กจ็คบใใใ APIใใผใฏใณใๅฎๅ
จใซไฟ็ฎก๏ผ.env ใชใฉ๏ผใ
ๅ ฌๅผใฎAPIใฌใคใใงใใAPI Tokens ใใไฝๆใใๅบๆฌๅ็ทใงใใ(Cloudflare Docs)
ไพ๏ผDirect Upload URL ใ็บ่ก๏ผBasic / 200MBๆชๆบ๏ผ
curl -X POST "https://api.cloudflare.com/client/v4/accounts/${ACCOUNT_ID}/stream/direct_upload" \
-H "Authorization: Bearer ${API_TOKEN}" \
-H "Content-Type: application/json" \
--data '{"maxDurationSeconds":600}'
โใจใณใใฆใผใถใผ็ดใขใใใญใผใโ็จใฎใฏใณใฟใคใ URLใใตใผใใผๅดใง็บ่กใใฆๆธกใใพใใ200MBๆชๆบใฏBasicใ200MB่ถ ใฏtusๆจๅฅจใๅ ฌๅผใฎๆจๅฅจๆน้ใงใใ(Cloudflare Docs)
3. ๆ้ไฝ็ณป๏ผ2025ๅนด9ๆๆ็น๏ผ
- ไฟๅญ๏ผMinutes Stored๏ผ๏ผ$5 / 1,000ๅใๅๆใ๏ผใใชใใคใ๏ผใใใกใคใซใตใคใบใฏไธๅใๆฎ้ซใฏใใใทใฅใใผใใง็ขบ่ชใงใใพใใ(Cloudflare Docs)
- ้ ไฟก๏ผMinutes Delivered๏ผ๏ผ$1 / 1,000ๅใๅพๆใ๏ผๅพ้๏ผใVODๅ็ใปHLS/DASHใปMP4ใใฆใณใญใผใใปใฉใคใ้ ไฟกใชใฉใๅฏพ่ฑกใใใใทใฅใใผใใฎ Billable Usage / Stream Analytics ใง็ขบ่ชๅฏ่ฝใ(Cloudflare Docs)
- Stream Live ใๅไธ่ชฒ้๏ผ้ฒ็ป๏ผไฟๅญใ่ฆ่ด๏ผ้ ไฟกใใจใณใณใผใ่ฟฝๅ ่ฒป็จใชใ๏ผใ(Cloudflare Docs)
- Pro/Businessใใฉใณใซใฏ็กๆๆ ใฎๆกๅ ๏ผไพ๏ผไฟๅญ100ๅ๏ผ้ ไฟก10,000ๅ๏ผใใใใพใใๆๆฐใฎใใฉใณ่กจ่จใ็ขบ่ชใใฆใใ ใใใ(Cloudflare)
ไพ๏ผ10ๅๅ็ปร100ๅๅ็ โ ้ ไฟก1,000ๅ = $1ใไฟๅญใฏ10ๅรๆฌๆฐใงๆถ่ฒป๏ผ1,000ๅๆ ๏ผ$5๏ผใๅ่จใฏไฝฟ็จ็ถๆณใซใใๆฆใญ $1ใๆฐใใซใซๅใพใใพใใ
4. ๆฏๆใ่จญๅฎ๏ผBilling / Payment๏ผ
- ๆฑบๆธๆๆฎตใฎ็ป้ฒ๏ผใใใทใฅใใผใ โ Billing โ Payment โ Manage ใใ ใฏใฌใธใใใซใผใ / PayPal ใ่ฟฝๅ ใใใใฏใขใใๆฑบๆธๆๆฎตใ็ป้ฒๅฏใ(Cloudflare Docs)
- ่ซๆฑๅ /็จๆ ๅ ฑ๏ผVAT/GST๏ผ๏ผBilling ใใผใธใงๆดๆฐใ่ซๆฑใกใผใซใไฝๆๅคๆดใๅใใผใธใ(Cloudflare Docs)
- ๆฏๆใๅคฑๆใฎๅๆฑบๆธ๏ผInvoices & documents ใง Pay Nowใ(Cloudflare Docs)
- ไฝฟ็จ้ใฎๅฏ่ฆๅ๏ผBilling โ Usage๏ผUsage based billing ใฎ่ชฌๆใๅ็ ง๏ผใ(Cloudflare Docs)
5. Cloudflare Stream ใฎไธปใชAPI
5.1 ใขใใใญใผใ
-
Direct Creator Uploads๏ผBasic/200MBๆชๆบ or tus๏ผ
ใจใณใใฆใผใถใผ็ดใขใใใญใผใใฎใใใฎURLใ็บ่กใ200MBๆชๆบใฏBasicใ200MB่ถ ใๅ้ๅฏๅฆใๅฟ ่ฆใชใtusใ(Cloudflare Docs) -
tus๏ผใฌใธใฅใผใ ๏ผ
POST /accounts/{account_id}/stream๏ผTus-Resumable๏ผโ 201 + Location ใงไปฅๅพPATCHใ(Cloudflare Docs) -
Link Upload๏ผURLๅใ่พผใฟ๏ผ
POST /accounts/{account_id}/stream/copyใงๅค้จURL๏ผไพ๏ผS3๏ผใใ็ดๆฅๅใ่พผใฟใ(Cloudflare Docs)
5.2 ็ฎก็
-
ไธ่ฆง/่ฉณ็ดฐ/ๅ้ค๏ผ
GET /accounts/{account_id}/stream๏ผๆๅคง1000ไปถ๏ผใGET/DELETE /stream/{video_uid}ใ(Cloudflare Docs)
5.3 ๅ็
-
Stream Player๏ผiframe๏ผ๏ผ
https://customer-<CODE>.cloudflarestream.com/<VIDEO_UID>/iframeใๅใ่พผใฟใ(Cloudflare Docs) - ่ชๅใใฌใคใคใผ๏ผHLS/DASH ใใใใงในใURLใฏใใใทใฅใใผใ/APIใงๅๅพใ(Cloudflare Docs)
5.4 ใปใญใฅใชใใฃ
-
Signed URL / Tokens๏ผๅ็ปใซ
requireSignedURLs: trueใ่จญๅฎใใPOST /stream/{identifier}/tokenใง็ฝฒๅใใผใฏใณ็บ่กใๅ ฌ้ใชใณใฏใฏ็กๅนๅใใใ็ฝฒๅURLๅฟ ้ ใซใ(Cloudflare Docs) - Allowed Origins๏ผHLS/DASHใฎๅๅพๅ ใใกใคใณใๅถ้๏ผ่ชๅใใฌใคใคใผใงใๆๅน๏ผใ(Cloudflare Docs)
-
Live ใฎๅ ดๅ๏ผ
allowedOrigins/requireSignedURLsใฏใฉใคใๅ ฅๅใซ็ดใฅใ่จญๅฎใ้ฒ็ปใซใๆขๅฎใจใใฆ้ฉ็จใ(Cloudflare Docs)
5.5 ๅญๅนใปใตใ ใใปใใฆใณใญใผใใป้ใใ
- Captions๏ผๅญๅน๏ผ๏ผBCP47่จ่ชใใจใซ VTT ใ PUT๏ผAI็ๆAPIใใใใ(Cloudflare Docs)
-
ใตใ ใ๏ผthumbnails๏ผ๏ผ
.../thumbnails/thumbnail.jpg?time=1s&height=270ใชใฉ URLใงๅณ็ๆใๆขๅฎไฝ็ฝฎใฏthumbnailTimestampPctใงๆดๆฐๅฏใ(Cloudflare Docs) -
MP4/M4A ใใฆใณใญใผใ๏ผ
/downloadsใ POSTโใใผใชใณใฐโready ใซใชใฃใใๅๅพใใฉใคใ้ฒ็ปใUIใใๆๅนๅๅฏใ(Cloudflare Docs) - ใฆใฉใผใฟใผใใผใฏ๏ผWatermark profile ใไฝๆโใขใใใญใผใๆใซ้ฉ็จใAPI/ใใใทใฅใใผใไธกๅฏพๅฟใ(Cloudflare Docs)
6. ๅณ่งฃ๏ผAPIใฎไฝฟใๅใ
7. ๅฎ่ฃ ใใงใใฏใชในใ๏ผๆฌ็ช้็จๅใ๏ผ
-
ใขใใใญใผใ๏ผใตใผใใผใง Direct Creator Upload URL ใ็บ่ก๏ผBasicใฏ1ๅใฎใฟๆๅน๏ผใ200MB่ถ ใไธๅฎๅฎๅ็ทใฏtusใธใ(Cloudflare Docs)
-
ๅ็ใปใญใฅใชใใฃ๏ผ
requireSignedURLs:true+ ็ญๅฏฟๅฝใใผใฏใณ + Allowed Origins ใงไบ้้ฒๅพกใ้ตใฏ /stream/keys ใงใญใผใใผใทใงใณใ(Cloudflare Docs) -
็ถๆ ็ฃ่ฆ๏ผWebhooksใง processingโready ใๅไฟกใใDB/้็ฅใๆดๆฐ๏ผใใผใชใณใฐใใ็ขบๅฎ๏ผใ(Cloudflare Docs)
-
UX๏ผ
readyToStreamใ่ฆใฆๅ็้ๅงใใตใ ใURLใงใในใฟใผ็ๆใ(Cloudflare Docs) -
ใขใฏใปใทใใชใใฃ๏ผๅญๅน๏ผVTT๏ผใ็จๆใๅค่จ่ชใฏ่ฟฝๅ ้ณๅฃฐใใฉใใฏใๆค่จใ(Cloudflare Docs)
-
ใใฆใณใญใผใ๏ผๅฟ ่ฆๅ็ปใฎใฟ /downloads ใๆๅนๅใใready ใซใชใฃใฆใใใชใณใฏ้ ๅธใ(Cloudflare Docs)
-
ๆ้/้็จ๏ผ
- ไฟๅญใฏๅๆใ๏ผๆฎ้ซใๅฐฝใใใจๆฐ่ฆใขใใใญใผใไธๅฏ โ ๆๅใซใใฃใผใธ or ็ฃ่ฆใ(Cloudflare Docs)
- ้ ไฟกใฏๅพๆใ๏ผไฝฟ็จ้ใฏ Billable Usage / Analytics ใง็ขบ่ชใ(Cloudflare Docs)
- ๆฏๆใ๏ผBilling โ Payment ใงใซใผใ/PayPalใๆชๆใใฏ Invoices ใง Pay Nowใ(Cloudflare Docs)
8. ใใ่ฉฆใใใตใณใใซ๏ผcURL๏ผ
(A) Basic ็ดใขใใใญใผใURL๏ผ200MBๆชๆบ๏ผ
curl -X POST "https://api.cloudflare.com/client/v4/accounts/${ACCOUNT_ID}/stream/direct_upload" \
-H "Authorization: Bearer ${API_TOKEN}" \
-H "Content-Type: application/json" \
--data '{"maxDurationSeconds":600}'
# => result.uploadURL, result.uid
(B) tus ๅๆๅ๏ผๅคงๅฎน้ใปๅ้ๅฏ๏ผ
curl -i -X POST "https://api.cloudflare.com/client/v4/accounts/${ACCOUNT_ID}/stream" \
-H "Authorization: Bearer ${API_TOKEN}" \
-H "Tus-Resumable: 1.0.0" \
-H "Upload-Length: 734003200"
# => 201 + Location ใใใ
(C) ๅ็๏ผiframe๏ผ
<iframe
src="https://customer-<CODE>.cloudflarestream.com/<VIDEO_UID>/iframe"
width="1280" height="720" style="border:none" allow="accelerometer; autoplay; clipboard-write; encrypted-media; picture-in-picture" allowfullscreen>
</iframe>
9. ๅ่๏ผๅ ฌๅผใใญใฅใกใณใ๏ผ
-
Pricing๏ผ
1/1000ๅ้ ไฟก / ใใใทใฅใใผใ็ขบ่ช็ฎๆ๏ผ(Cloudflare Docs) - Direct Creator Uploads๏ผ200MB้พๅค / tusๆจๅฅจ๏ผ (Cloudflare Docs)
- Signed URLs / requireSignedURLs / token (Cloudflare Docs)
- Allowed Origins๏ผ่ชๅใใฌใคใคใผใงใๆๅน๏ผ (Cloudflare Docs)
- Playerๅใ่พผใฟ๏ผiframeใณใผใ๏ผ(Cloudflare Docs)
- MP4ใใฆใณใญใผใ๏ผPOSTโใใผใชใณใฐโready๏ผ(Cloudflare Docs)
- Thumbnails๏ผURLใง็ๆ / ๆขๅฎไฝ็ฝฎ๏ผ(Cloudflare Docs)
- Watermark๏ผใใญใใกใคใซโ้ฉ็จ๏ผ(Cloudflare Docs)
- Webhooks๏ผๅฆ็ๅฎไบ้็ฅ๏ผ(Cloudflare Docs)
- ๆฏๆใ่จญๅฎ๏ผใซใผใ/PayPal/่ซๆฑ๏ผ (Cloudflare Docs)
- Live ใฎ่ชฒ้ใจ allowedOrigins ใฎ็ถๆฟ (Cloudflare Docs)
Comments
Let's comment your feelings that are more than good