# การนำเข้าวิดีโอจาก S3 Storage ผ่าน API

หากคุณมีไฟล์วิดีโอต้นฉบับ เก็บไว้บน Cloud Storage ที่รองรับโปรโตคอลแบบ S3-Compatible เช่น Amazon S3, Google Cloud Storage ท่านสามารถนำไฟล์เข้าสู่ระบบ ByteArk Stream ได้โดยตรงผ่าน API โดยไม่ต้องดาวน์โหลดมาอัปโหลดใหม่ ด้วยวิธีการดังนี้

  1. สร้างข้อมูล video source ในหน้า https://stream.byteark.com/${workspace-key}/manage/video-sources หากมีอยู่แล้วสามารถนำ id มาใช้ได้เลย
  2. ส่ง Request เพื่อร้องขอการสร้างวิดีโอ
  3. รอจนกระทั่งวิดีโออัปโหลดสำเร็จและพร้อมใช้งาน

# Authorization

API ที่กล่าวมาข้างต้นต้องส่ง HTTP Authorization Header ดังต่อไปนี้

Authorization: Bearer <personal_access_token_here>
1

คุณสามารถดูวิธีการนำ Personal Access Token มาใช้ได้จาก ที่นี่

# ขั้นตอนที่ 1 - สร้างข้อมูล video source

ในหน้า https://stream.byteark.com/${workspace-key}/manage/video-sources

  1. กด เพิ่มแหล่งที่มาของวิดีโอ
  2. กรอกข้อมูลที่จำเป็น หากมีข้อมูลอยู่แล้วสามารถข้ามการสร้างและนำ ID ไปใช้ได้เลย

# ขั้นตอนที่ 2 - ส่ง Request เพื่อร้องขอการสร้างวิดีโอ

เริ่มต้นด้วยการส่ง HTTP Request แบบ POST พร้อมกับชื่อวิดีโอ

# Request Endpoint

POST https://stream.byteark.com/api/v2/public/import-batch-actions/single-import-s3
1

# 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"
        }
    }
  ]
}
1
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"
      }
    }
  }
]
1
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