Upload video from m3u8 url

Imports a video into PandaVideo from an external M3U8 (HLS) playlist URL. Runs asynchronously — the video appears as DRAFT until the playlist is fully ingested.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

POST /m3u8

Imports a video into the PandaVideo platform from an M3U8 (HLS) playlist URL. The upload runs asynchronously — the API kicks off the import and the video appears in your account once the playlist has been fully ingested and re-packaged.

📘

Authorization

Requires a valid Panda API token sent in the Authorization header (no Bearer prefix).

HTTP Method & Path

POST /m3u8

Base URL: https://import.pandavideo.com:9443/videos

Full URL: https://import.pandavideo.com:9443/videos/m3u8

⚠️

Heads up: the import service runs on a different host (import.pandavideo.com on port 9443) than the rest of the public API (api-v2.pandavideo.com.br). Make sure your firewall/proxy allows outbound traffic to port 9443.

Authentication Requirements

Security SchemeHeaderNote
API KeyAuthorizationPanda API token (without Bearer prefix)

Parameters

NameInTypeRequiredDescription
AuthorizationheaderstringYesPanda API token (without Bearer prefix)

Request Body

Content-Type: application/json

Body Parameters

FieldTypeRequiredDescriptionConstraints
urlstringYesThe M3U8 (HLS) playlist URL. Must be publicly reachable.URL
titlestringYesThe title of the new video.
folder_idstringNoFolder where the imported video should be stored. Omit to use the root folder.uuid
descriptionstringNoDescription for the new video.
{
  "url": "https://example.com/stream/playlist.m3u8",
  "title": "Imported live recording",
  "folder_id": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
  "description": "Imported from an external HLS playlist."
}
🚧

Cloud-only

Only URLs hosted in the cloud are accepted. Local/private URLs (LAN, localhost, dev servers) will be rejected.

Response

Success Response (200)

Returns the import job acknowledgement. The video is created asynchronously — poll Get video properties using the returned id to track conversion status.

{
  "id": "11111111-2222-3333-4444-555555555555",
  "title": "Imported live recording",
  "status": "DRAFT",
  "folder_id": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
  "created_at": "2026-05-29T14:36:39.000Z"
}

Error Responses

  • 400 Bad Request — Missing or invalid url/title, or unsupported URL (e.g., non-HLS, local host).
  • 401 Unauthorized — Missing or invalid API token.
  • 500 Internal Server Error — Server-side error.

Example Usage

cURL

curl -X POST \
  'https://import.pandavideo.com:9443/videos/m3u8' \
  -H 'Authorization: your_api_token_here' \
  -H 'Content-Type: application/json' \
  -d '{
  "url": "https://example.com/stream/playlist.m3u8",
  "title": "Imported live recording"
}'

Recipes

The Recipes section provides a collection of code examples and sample implementations to help you understand and use the API effectively.

Body Params
string
required
string
required
string
string
string

uuid

headers
object
boolean
Responses

Language
Credentials
Header
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json