# การนำเข้าวิดีโอจาก S3 Storage ผ่าน API
หากคุณมีไฟล์วิดีโอต้นฉบับ เก็บไว้บน Cloud Storage ที่รองรับโปรโตคอลแบบ S3-Compatible เช่น Amazon S3, Google Cloud Storage ท่านสามารถนำไฟล์เข้าสู่ระบบ ByteArk Stream ได้โดยตรงผ่าน API โดยไม่ต้องดาวน์โหลดมาอัปโหลดใหม่ ด้วยวิธีการดังนี้
- สร้างข้อมูล video source ในหน้า https://stream.byteark.com/${workspace-key}/manage/video-sources หากมีอยู่แล้วสามารถนำ id มาใช้ได้เลย
- ส่ง Request เพื่อร้องขอการสร้างวิดีโอ
- รอจนกระทั่งวิดีโออัปโหลดสำเร็จและพร้อมใช้งาน
# Authorization
API ที่กล่าวมาข้างต้นต้องส่ง HTTP Authorization Header ดังต่อไปนี้
Authorization: Bearer <personal_access_token_here>
คุณสามารถดูวิธีการนำ Personal Access Token มาใช้ได้จาก ที่นี่
# ขั้นตอนที่ 1 - สร้างข้อมูล video source
ในหน้า https://stream.byteark.com/${workspace-key}/manage/video-sources
- กด เพิ่มแหล่งที่มาของวิดีโอ
- กรอกข้อมูลที่จำเป็น หากมีข้อมูลอยู่แล้วสามารถข้ามการสร้างและนำ ID ไปใช้ได้เลย
# ขั้นตอนที่ 2 - ส่ง Request เพื่อร้องขอการสร้างวิดีโอ
เริ่มต้นด้วยการส่ง HTTP Request แบบ POST พร้อมกับชื่อวิดีโอ
# Request Endpoint
POST https://stream.byteark.com/api/v2/public/import-batch-actions/single-import-s3
# Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
projectKey | String | Required | Key ของโปรเจกต์ที่จะอัปโหลดวิดีโอเข้าไป |
videos | []Object | Required | ข้อมูลวิดีโอที่จะสร้าง โดยสามารถสร้างหลายๆ วิดีโอพร้อมๆ กันได้ |
videos.*.title | String | Required | ชื่อวิดีโอ |
videos.*.source.uri | String | Required | url ของ video ที่ต้องการ import โดยเป็น pattern s3://{bucket}/path/to/file |
videos.*.source.connectionId | string | - | ID ของ video source ในหน้า https://stream.byteark.com/${workspace-key}/manage/video-sources |
presetId | String | - | ID ของพรีเซตที่ต้องการใช้สำหรับวิดีโอที่สร้างใหม่ สามารถเว้นว่างได้เพื่อใช้พรีเซตตั้งต้นของโปรเจกต์นั้นๆ |
คุณสามารถดูวิธีการนำ projectKey มาใช้ได้จาก ที่นี่
คุณสามารถดู presetId ที่มีอยู่แล้วได้ในหน้า https://stream.byteark.com/${workspace-key}/manage/presets
# Sample Request Parameters
{
"projectKey": "your-project-key-here",
"videos": [
{
"title": "Video 1 title here",
"source": {
"uri": "s3://bucket/path/to/file",
"connectionId": "connectionId"
}
},
{
"title": "Video 2 title here",
"source": {
"uri": "s3://bucket/path/to/file",
"connectionId": "connectionId"
}
}
]
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# Sample Response
[
{
"key": "RuguHtZPJYm4",
"title": "Video 1 title here",
"primaryPlaybackUrl": {
name: "playback",
hls: {
name: "Adaptive Bitrate",
url: "https://your-playback-domain/streams/VideoKey/playlist.m3u8"
}
}
},
{
"key": "RuguHtZPJYm5",
"title": "Video 2 title here",
"primaryPlaybackUrl": {
name: "playback",
hls: {
name: "Adaptive Bitrate",
url: "https://your-playback-domain/streams/VideoKey/playlist.m3u8"
}
}
}
]
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# ขั้นตอนที่ 3 - รอจนกระทั่งวิดีโอพร้อมใช้งาน
วิดีโอจะถูกประมวลผล คุณอาจจะรอให้วิดีโอพร้อมใช้งานโดย Polling Video API หรือใช้ Webhook (opens new window)
โดยสามารถดูสถานะได้จาก field vod.processingInfo.state
หากวิดีโอพร้อมใช้งานสถานะควรเป็น completed