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.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
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.
AuthorizationRequires a valid Panda API token sent in the
Authorizationheader (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.comon port9443) than the rest of the public API (api-v2.pandavideo.com.br). Make sure your firewall/proxy allows outbound traffic to port9443.
Authentication Requirements
| Security Scheme | Header | Note |
|---|---|---|
| API Key | Authorization | Panda API token (without Bearer prefix) |
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
Authorization | header | string | Yes | Panda API token (without Bearer prefix) |
Request Body
Content-Type: application/json
Body Parameters
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
url | string | Yes | The M3U8 (HLS) playlist URL. Must be publicly reachable. | URL |
title | string | Yes | The title of the new video. | — |
folder_id | string | No | Folder where the imported video should be stored. Omit to use the root folder. | uuid |
description | string | No | Description 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-onlyOnly 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.
