Panda Video
REMOTE · MCP.PANDAVIDEO.COM
Video hosting: upload, organize and configure videos, analytics, AI subtitles and Shorts.
Available components
Last scanned (12 hours ago)
Scores higher than 99% of remote servers
Reachable. Last reached 5 Nov 2026.
Category Design and Media
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security89
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token. View diagnostics → Pass
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
- The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents. View diagnostics → Partial
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability80
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 27581 tokens (~126/item across 218 items; 216 tools + 2 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management99
- Stability check failed: schema churn in the 30 days we've observed: 0 tool removals, 2 breaking changes, 0 auth/transport breaks, 39 additions. See how to fix → Fail
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 29 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 217 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Checks we ran (13)
- TLS certificate
- Authorization
- HTTPS
- HSTS header
- DNSSEC
- Transport
- Schema quality
- Stability
- Tool coverage
- Injection markers
- Destructive annotations
- Judged manipulation
- MCP protocol
Does not apply to this hosted endpoint (2)
- Supply Chain SecurityScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.
- Provenance & TransparencyScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.
The score does not measure everything. What the score does not measure →
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 5 Nov 26 +1
- Tool “panda_action_dub_folder_videos” rewrote its description, which is the text the model reads security
- Tool “panda_create_ai_dubbing” rewrote its description, which is the text the model reads security
- “panda_action_dub_folder_videos” reworded the description of “mode” cosmetic
- “panda_create_ai_dubbing” reworded the description of “is_lipsync” cosmetic
- 4 Nov 26 0
- Tool “panda_add_videos_to_funnel” rewrote its description, which is the text the model reads security
- Tool “panda_delete_funnel” rewrote its description, which is the text the model reads security
- Tool “panda_get_business_rules” rewrote its description, which is the text the model reads security
- Tool “panda_help_search” rewrote its description, which is the text the model reads security
- Tool “panda_remove_videos_from_funnel” rewrote its description, which is the text the model reads security
- 3 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 89 to 93.
- 31 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 79 to 83.
- 30 Oct 26 0
- New tool “panda_delete_ai_resource”, which the server declares destructive security
- New tool “panda_regenerate_ai_resource”, which the server declares destructive security
- New tool “panda_update_ai_resource”, which the server declares destructive security
- Tool “panda_action_credit_preflight” rewrote its description, which is the text the model reads security
- Tool “panda_action_enable_ai_package_for_folder” rewrote its description, which is the text the model reads security
- Tool “panda_delete_ai_workflow” rewrote its description, which is the text the model reads security
- Tool “panda_get_ai_workflows” rewrote its description, which is the text the model reads security
- Tool “panda_get_videos_ai_resources” rewrote its description, which is the text the model reads security
- Schema quality: 24596 → 27392 ▼ functional
- New tool “panda_confirm_ai_ebook_pdf” functional
- New tool “panda_create_ai_resource” functional
- New tool “panda_generate_ai_resource” functional
- New tool “panda_get_ai_ebook_images” functional
- New tool “panda_get_ai_ebook_upload_url” functional
- New tool “panda_get_ai_resource_content” functional
- New tool “panda_list_ai_works” functional
- New tool “panda_set_ai_resource_download” functional
- “panda_action_enable_ai_package_for_folder” added an optional parameter “resources” cosmetic
- “panda_action_enable_ai_package_for_folder” added an optional parameter “to_langs” cosmetic
- “panda_action_credit_preflight” reworded the description of “target_langs” cosmetic
- “panda_action_enable_ai_package_for_folder” reworded the description of “dry_run” cosmetic
- “panda_action_enable_ai_package_for_folder” reworded the description of “from_lang” cosmetic
- 29 Oct 26 +1
- New tool “panda_encrypt_videos”, which the server declares destructive security
- New tool “panda_set_exclusive_playback”, which the server declares destructive security
- New tool “panda_set_new_uploads_encryption”, which the server declares destructive security
- New tool “panda_update_library_qualities”, which the server declares destructive security
- Tool “panda_action_reencode_folder_videos” rewrote its description, which is the text the model reads security
- Tool “panda_action_set_allowed_domains” rewrote its description, which is the text the model reads security
- Tool “panda_action_set_anti_download” rewrote its description, which is the text the model reads security
- Tool “panda_reencode_video” rewrote its description, which is the text the model reads security
- Tool “panda_set_block_none_refer” rewrote its description, which is the text the model reads security
- Tool “panda_update_folder_refer” rewrote its description, which is the text the model reads security
- Tool “panda_reencode_video” is now declared destructive security
- New tool “panda_get_exclusive_playback” functional
- New tool “panda_get_hls_encryption_batches” functional
- New tool “panda_get_library_qualities” functional
- New tool “panda_get_new_uploads_encryption” functional
- New tool “panda_list_hls_encrypted_videos” functional
- “panda_action_reencode_folder_videos” reworded the description of “compression_mode” cosmetic
- “panda_action_set_allowed_domains” reworded the description of “block_none_refer” cosmetic
- “panda_reencode_video” reworded the description of “compression_mode” cosmetic
- “panda_set_block_none_refer” reworded the description of “block_none_refer” cosmetic
- Tool “panda_set_block_none_refer” changed its title: Toggle Block-No-Referer Policy → Turn Domain Protection On/Off cosmetic
- 28 Oct 26 0
- New tool “panda_remove_tutor_video”, which the server declares destructive security
- Tool “panda_action_add_folder_videos_to_tutor” rewrote its description, which is the text the model reads security
- Tool “panda_add_tutor_videos” rewrote its description, which is the text the model reads security
- Tool “panda_update_ai_assistant_video_bindings” rewrote its description, which is the text the model reads security
- Tool “panda_update_ai_assistant_video_bindings” no longer declares itself destructive security
- “panda_add_tutor_videos” added an optional parameter “lang” cosmetic
- “panda_update_ai_assistant_video_bindings” reworded the description of “lang” cosmetic
- “panda_update_ai_assistant_video_bindings” reworded the description of “video_ids” cosmetic
- 27 Oct 26 0
- New tool “panda_cancel_partial_deletion”, which the server declares destructive security
- New tool “panda_request_partial_deletion”, which the server declares destructive security
- New tool “panda_update_sign_language_display”, which the server declares destructive security
- Tool “panda_action_apply_profile_to_folder” rewrote its description, which is the text the model reads security
- Tool “panda_action_dub_folder_videos” rewrote its description, which is the text the model reads security
- Tool “panda_action_request_folder_downloads” rewrote its description, which is the text the model reads security
- Tool “panda_check_download_status” rewrote its description, which is the text the model reads security
- Tool “panda_create_ai_dubbing” rewrote its description, which is the text the model reads security
- Tool “panda_get_folder” rewrote its description, which is the text the model reads security
- Tool “panda_request_download” rewrote its description, which is the text the model reads security
- New tool “panda_get_videos_ai_resources” functional
- New tool “panda_get_videos_status” functional
- New tool “panda_list_partial_deletions” functional
- “panda_get_folder” added an optional parameter “limit” cosmetic
- “panda_get_folder” added an optional parameter “page” cosmetic
- “panda_action_dub_folder_videos” reworded the description of “from_lang” cosmetic
- “panda_action_dub_folder_videos” reworded the description of “mode” cosmetic
- “panda_action_request_folder_downloads” reworded the description of “language” cosmetic
- “panda_action_request_folder_downloads” reworded the description of “quality” cosmetic
- “panda_check_download_status” reworded the description of “language” cosmetic
- “panda_check_download_status” reworded the description of “quality” cosmetic
- “panda_create_ai_dubbing” reworded the description of “from_lang” cosmetic
- “panda_create_ai_dubbing” reworded the description of “is_lipsync” cosmetic
- “panda_create_ai_dubbing” reworded the description of “replace_existing_subtitles” cosmetic
- “panda_request_download” reworded the description of “language” cosmetic
- “panda_request_download” reworded the description of “quality” cosmetic
- “panda_create_ai_dubbing” made “from_lang” optional cosmetic
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Probed https://mcp.pandavideo.com/mcp
TLS valid
Negotiated TLS 1.2 with TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=*.pandavideo.com | CN=Amazon RSA 2048 M01,O=Amazon,C=US | 22 Oct 2026 | 7 May 2027 | RSA 2048 | SHA256-RSA | a6b4f4ff4ff56832987356f0d55e10a |
| SANs: *.pandavideo.com | ||||||
| CN=Amazon RSA 2048 M01,O=Amazon,C=US (CA) | CN=Amazon Root CA 1,O=Amazon,C=US | 23 Aug 2022 | 23 Aug 2030 | RSA 2048 | SHA256-RSA | 77312380b9d6688a33b1ed9bf9ccda68e0e0f |
| CN=Amazon Root CA 1,O=Amazon,C=US (CA) | CN=Starfield Services Root Certificate Authority - G2,O=Starfield Technologies\, Inc.,L=Scottsdale,ST=Arizona,C=US | 25 May 2015 | 31 Dec 2037 | RSA 2048 | SHA256-RSA | 67f944a2a27cdf3fac2ae2b01f908eeb9c4c6 |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of mcp.pandavideo.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | Trust anchor | 20326, 38696 | 8, 8 | Verified |
| com. | DS published | 19718 | 13 | Verified |
| pandavideo.com. | No DS | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Enforced and verified
The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.
| Result | Enforced and verified |
|---|---|
| Enforced | On tool calls |
| HTTP status | 200 |
WWW-Authenticate challenge Bearer resource_metadata="https://mcp.pandavideo.com/.well-known/oauth-protected-resource/mcp", scope="videos:read videos:write"
Bearer resource_metadata="https://mcp.pandavideo.com/.well-known/oauth-protected-resource/mcp", scope="videos:read videos:write" Protected resource metadata
| Document | https://mcp.pandavideo.com/.well-known/oauth-protected-resource/mcp |
|---|---|
| Retrieved | Yes |
| Resource | https://mcp.pandavideo.com/mcp |
| Authorisation server | https://mcp.pandavideo.com |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.pandavideo.com/mcp | Verified | 200 | |
| http (plaintext) | http://mcp.pandavideo.com/mcp | HTTPS enforced | 301 | https://mcp.pandavideo.com:443/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
panda_action_add_folder_videos_to_funnel Add Folder Videos to Funnel ~121
Deterministically resolve a funnel (by name or ID) and a folder, then add every CONVERTED folder video to the funnel (POST /funnels/add_videos). dry_run=true (default) previews the additions.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | – | true = preview only; false = add |
| folder_ref | string | yes | Folder name, ID, or dashboard URL |
| funnel_ref | string | yes | Funnel name or ID |
| idempotency_key | string | – | Reserved client-supplied retry key |
No output schema declared.
No examples provided.
panda_action_add_folder_videos_to_playlist Add Folder Videos to Playlist ~117
Deterministically resolve a folder and an existing playlist (by name or ID), then append every CONVERTED folder video to the playlist after its current items. dry_run=true (default) previews the additions.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | – | true = preview only; false = add |
| folder_ref | string | yes | Folder name, ID, or dashboard URL |
| idempotency_key | string | – | Reserved client-supplied retry key |
| playlist_ref | string | yes | Playlist name or ID |
No output schema declared.
No examples provided.
panda_action_add_folder_videos_to_tutor Add Folder Videos to Tutor ~198
Deterministically resolve an existing AI Tutor (by name or ID) and a folder, then bind every CONVERTED folder video to the tutor (PUT /assist-ai/update_assistant_video_bind/{id}). Additive: videos already bound stay as they are and nothing is unbound. Billing: each NEW video without a subtitle in the tutor's language gets a transcription, charged at ceil(minutes/5) credits per video (Gold/Enterprise plans outside trial get free transcriptions up to a daily limit); without enough credits the API refuses before binding anything. dry_run=true (default) previews the additions.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | – | true = preview only; false = bind |
| folder_ref | string | yes | Folder name, ID, or dashboard URL |
| idempotency_key | string | – | Reserved client-supplied retry key |
| tutor_ref | string | yes | Tutor name or ID |
No output schema declared.
No examples provided.
panda_action_apply_profile_to_folder Apply Profile to Folder ~213
Deterministically resolve a player profile and a folder and link the profile to ALL videos of the folder in one call (sends folder_id, like the dashboard). Subfolders are not included; videos in any status (not only converted ones) also receive the profile. Videos with their own customized player lose that customization. The work is queued: the result is status 'executed' with api_status 'pending' — confirm later with panda_get_profile (videos_count). api_status 'ok' only means the API found no videos in the folder: nothing was changed. Free action (no credits). dry_run=true (default) returns a preview.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | – | true = preview only; false = apply |
| folder_ref | string | yes | Folder name, ID, or dashboard URL |
| idempotency_key | string | – | Reserved client-supplied key to make retries safe (not yet enforced server-side) |
| profile_ref | string | yes | Player profile name or ID |
No output schema declared.
No examples provided.
panda_action_apply_video_config_to_folder Apply Video Config to Folder ~284
Deterministically resolve a folder and apply per-video player config to every CONVERTED video (POST /player?type=video). Supports: default_subtitle (lang code or 'false'), default_audio (dubbing language code or 'false'), on_funnel, and the AI toggles questions/mindmap/abstract. Send only the fields you want to change. dry_run=true (default) previews the affected videos.
| Name | Type | Req | Description |
|---|---|---|---|
| abstract | boolean | – | Enable/disable AI eBook/Abstract |
| default_audio | string | – | Default audio language — code of a dubbing the videos have (e.g. 'es') or 'false' for the original audio. Only takes effect with the dubbing item on in the gear menu and without lipsync. |
| default_subtitle | string | – | Default subtitle language code (e.g. 'pt-BR') or 'false' to disable |
| dry_run | boolean | – | true = preview only; false = apply |
| folder_ref | string | yes | Folder name, ID, or dashboard URL |
| idempotency_key | string | – | Reserved client-supplied retry key |
| mindmap | boolean | – | Enable/disable AI MindMap |
| on_funnel | boolean | – | Enable/disable funnel integration |
| questions | boolean | – | Enable/disable AI Quiz |
No output schema declared.
No examples provided.
panda_action_apply_watermark_group_to_folder Apply Watermark Group to Folder ~137
Deterministically resolve a watermark/DRM group (by name or ID) and a folder, then add the folder to the group so all its videos (current and future) inherit the forensic watermark (PUT /drm/videos/{id} folders.increment). dry_run=true (default) previews.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | – | true = preview only; false = apply |
| folder_ref | string | yes | Folder name, ID, or dashboard URL |
| group_ref | string | yes | Watermark group name or ID |
| idempotency_key | string | – | Reserved client-supplied retry key |
No output schema declared.
No examples provided.
panda_action_configure_folder_profile Configure Folder Player Profile ~534
Deterministically apply player-profile settings to every CONVERTED video in a folder, without touching videos outside it. Covers everything a profile holds: colors (Cores) incl. caption colors, captionsSize, controls incl. the big play button 'play-large' (Controles / Botão de Play Grande), VSL, save-progress, general (speed, theme, gear menu, offline) and availableQualities — pass any subset. Per video: its own (exclusive) profile is updated; a video on a SHARED or the default profile first gets its own copy of that profile (like the dashboard does), so the other videos of that profile do not change; a video without a profile gets a new one. Colors are merged with the current ones. dry_run=true (default) first VALIDATES each video and previews the plan — including which shared profiles end up with no videos — without changing anything.
| Name | Type | Req | Description |
|---|---|---|---|
| availableQualities | array | – | Qualities the viewer can pick, e.g. ["480p","720p","1080p"]. Empty list = all qualities. |
| captionsSize | string | – | Caption font size by the dashboard name: extra_small (10px), small (12px), normal (14px, default), large (16px), extra_large (18px). Use the user's word ('legenda grande' / 'large captions' → large). |
| colors | object | – | Player colors, including caption text/background. Only the colors you send change — the others are kept. |
| controls | array | – | Array of enabled player controls (incl. "play-large" = Botão de Play Grande). Values: "play-large", "rewind", "play", "fast-forward", "progress", "current-time", "volume", "captions", "settings", "pi… |
| dry_run | boolean | – | true = validate + preview only; false = apply |
| folder_ref | string | yes | Folder name, ID, or dashboard URL |
| general | object | – | General player settings (speed, search-in-video, theme, gear menu, offline). Merged into the current values — keys you omit are kept. |
| hideControlsOnStart | boolean | – | Hide controls until user interacts |
| idempotency_key | string | – | Reserved client-supplied retry key |
| saveProgress | object | – | Save progress / resume settings |
| vsl | object | – | VSL (Video Sales Letter) settings — controls autoplay, smart autoplay, fake progress bar, muted indicator |
No output schema declared.
No examples provided.
panda_action_create_ab_test Create A/B Test ~130
Create an A/B comparison from 2+ videos (POST /comparison) and optionally start it immediately (PUT /comparison/{id}?type=start). dry_run=true (default) previews.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | – | Optional description |
| dry_run | boolean | – | true = preview only; false = create |
| idempotency_key | string | – | Reserved client-supplied retry key |
| name | string | yes | Comparison name |
| start | boolean | – | Start the test immediately after creating |
| video_ids | array | yes | Video IDs to compare (at least 2) |
No output schema declared.
No examples provided.
panda_action_create_folder_path Create Folder Path ~127
Deterministically ensure a nested folder path exists (e.g. 'Courses/2026/Module 1'), creating only the missing segments and returning the leaf folder ID. Idempotent: existing segments are reused. dry_run=true (default) previews which segments would be created.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | – | true = preview only; false = create |
| idempotency_key | string | – | Reserved client-supplied retry key |
| path | string | yes | Slash-separated folder path by name, e.g. 'Courses/2026/Module 1' |
No output schema declared.
No examples provided.
panda_action_create_playlist_from_folder Create Playlist from Folder ~178
Deterministically resolve a folder, create a new playlist, and add every CONVERTED video to it in folder order. dry_run=true (default) previews the playlist and its videos without creating anything.
| Name | Type | Req | Description |
|---|---|---|---|
| access_type | string | – | Playlist access type (the Panda API requires it; defaults to anyone_with_link) |
| creator_name | string | – | Creator name shown in the player (the Panda API requires it; defaults to the playlist name) |
| dry_run | boolean | – | true = preview only; false = create |
| folder_ref | string | yes | Folder name, ID, or dashboard URL |
| idempotency_key | string | – | Reserved client-supplied retry key |
| password | string | – | Password (for password-protected playlists) |
| playlist_name | string | yes | Name for the new playlist |
No output schema declared.
No examples provided.
panda_action_create_review_link_for_folder Create Review Links for Folder ~175
Deterministically resolve a folder and create a review link for every CONVERTED video (POST /video-review/{id}?action=link). dry_run=true (default) previews the links that would be created.
| Name | Type | Req | Description |
|---|---|---|---|
| allow_comment | boolean | – | Allow reviewers to comment |
| allow_status_edit | boolean | – | Allow reviewers to change status |
| dry_run | boolean | – | true = preview only; false = create |
| expires_at | integer | – | Expiry as a Unix timestamp (0 = never) |
| folder_ref | string | yes | Folder name, ID, or dashboard URL |
| idempotency_key | string | – | Reserved client-supplied retry key |
| link_name | string | yes | Name applied to each review link |
| show_resolved | boolean | – | Show resolved comments |
No output schema declared.
No examples provided.
panda_action_create_tutor_from_folder Create AI Tutor from Folder ~177
Deterministically resolve a folder, estimate the credit cost via purchase_overview, and create an AI Tutor bound to every CONVERTED video in the folder. dry_run=true (default) returns the cost preview without creating anything.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | – | true = preview only; false = create |
| folder_ref | string | yes | Folder name, ID, or dashboard URL |
| idempotency_key | string | – | Reserved client-supplied retry key |
| initial_question | string | – | Optional initial question shown in chat |
| lang | string | – | Tutor language code (default 'pt-BR') |
| name | string | yes | Name for the new tutor |
| open_new_tab | boolean | – | Open links in a new tab |
| question_suggestions | boolean | – | Show suggested questions |
No output schema declared.
No examples provided.
panda_action_create_watermark_group_for_folder Create Watermark Group for Folder ~117
Deterministically resolve a folder and create a new watermark/DRM group seeded with all its videos (POST /drm/videos). dry_run=true (default) previews the group and its videos.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | – | true = preview only; false = create |
| folder_ref | string | yes | Folder name, ID, or dashboard URL |
| group_name | string | yes | Name for the new watermark group |
| idempotency_key | string | – | Reserved client-supplied retry key |
No output schema declared.
No examples provided.
panda_action_credit_preflight Credit Preflight ~210
Estimate the credit cost of running a paid operation (dub / subtitles / ai_package) across every CONVERTED video in a folder and compare it to the current balance — WITHOUT executing anything. ai_package = eBook + mind map + quiz in target_langs (default 1 language), 1 credit/min per resource per language, minus the free daily AI quota of an active Gold/Enterprise plan (1 use per video × resource); resources the videos already have aren't subtracted (panda_action_enable_ai_package_for_folder with dry_run=true gives the exact preview). Read-only; use before the real action to decide whether to proceed.
| Name | Type | Req | Description |
|---|---|---|---|
| folder_ref | string | yes | Folder name, ID, or dashboard URL |
| mode | string | – | Dubbing mode |
| operation | string | yes | Which paid operation to price |
| target_langs | array | – | Target languages (for dub/subtitles/ai_package); count drives the cost |
| tier | string | – | Subtitle tier |
No output schema declared.
No examples provided.
panda_action_delete_folder_videos Delete Folder Videos ~133
Deterministically resolve a folder and send every video inside it to the trash (30-day recovery). DESTRUCTIVE. dry_run=true (default) returns a preview of what would be deleted; set dry_run=false AND confirm=true to actually delete.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Required safety flag — must be true (with dry_run=false) to delete |
| dry_run | boolean | – | true = preview only; false = delete |
| folder_ref | string | yes | Folder name, ID, or dashboard URL |
| idempotency_key | string | – | Reserved client-supplied retry key |
No output schema declared.
No examples provided.
panda_action_dub_folder_videos Dub Folder Videos ~332
Deterministically resolve a folder, list eligible (CONVERTED) videos, estimate the dubbing cost in credits, and optionally create AI dubbing jobs for one or more target languages. dry_run=true (default) returns a preview without creating any job. standard mode (AI dubbing, HeyGen audio only) = 5 credits/min, lipsync = 14 credits/min, per language (minimum 1 min; a partial minute counts only past 1 s). Skips videos that already have the other dubbing technology (standard and lipsync can't be mixed) and, in lipsync, videos over 60 minutes. Each video follows its subtitles like the dashboard: targets already subtitled get audio only (DUBBING), the others TRANSLATION (source subtitled) or TRANSCRIPTION + dubbing. Stops at the first insufficient-credits (402) answer and lists the videos not attempted.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | – | true = preview only; false = create jobs |
| folder_ref | string | yes | Folder name, ID, or dashboard URL |
| from_lang | string | – | Source language code (default 'auto' = each video's original language) |
| idempotency_key | string | – | Reserved client-supplied key to make retries safe (not yet enforced server-side) |
| mode | string | – | standard = AI dubbing (HeyGen, audio only), 5 credits/min, lipsync = 14 credits/min |
| target_langs | array | yes | Target language codes to dub into, e.g. ['en','es'] |
No output schema declared.
No examples provided.
panda_action_duplicate_folder_videos Duplicate Folder Videos ~114
Deterministically resolve a folder and create a copy of every CONVERTED video inside it. Duplication only works for non-external, non-funnel videos (the API rejects others, surfaced per-video). dry_run=true (default) previews the affected videos.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | – | true = preview only; false = duplicate |
| folder_ref | string | yes | Folder name, ID, or dashboard URL |
| idempotency_key | string | – | Reserved client-supplied retry key |
No output schema declared.
No examples provided.
panda_action_enable_ai_package_for_folder Enable AI Package for Folder ~287
Deterministically resolve a folder and generate AI package resources — eBook, mind map and/or quiz — for every CONVERTED video, one request per video × resource (POST /aiworkflow ABSTRACT | MINDMAP | QUESTIONS, like the dashboard). Default: the three resources in each video's own language. Resources a video already has in a language (or is still generating) are skipped. PAID: 1 credit per minute of video per resource per language (minimum 1 min; a partial minute counts only past 1 s); on an active Gold/Enterprise plan the free daily AI quota covers the first requests while it lasts (1 use per request). dry_run=true (default) returns the cost preview; execution is refused when the balance doesn't cover the cost.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | – | true = preview only; false = generate |
| folder_ref | string | yes | Folder name, ID, or dashboard URL |
| from_lang | string | – | Spoken language of the videos. Default: each video's original language, else 'auto' |
| idempotency_key | string | – | Reserved client-supplied retry key |
| resources | array | – | Which resources to generate (default all three) |
| to_langs | array | – | Languages to generate in, e.g. ['pt-BR','en']. Default: each video's own language |
No output schema declared.
No examples provided.
panda_action_export_folder_analytics Export Folder Analytics ~101
Deterministically resolve a folder and aggregate per-video play analytics over a date range (GET /general/{videoId} on the analytics host). Read-only — returns a per-video breakdown and folder total. No dry_run.
| Name | Type | Req | Description |
|---|---|---|---|
| end_date | string | yes | End date (YYYY-MM-DD) |
| folder_ref | string | yes | Folder name, ID, or dashboard URL |
| start_date | string | yes | Start date (YYYY-MM-DD) |
No output schema declared.
No examples provided.
panda_action_folder_ai_status Folder AI Status ~82
Deterministically resolve a folder and report the aggregate status of all its AI workflow jobs (subtitles, dubbing, AI package) via GET /aiworkflow?folder_id. Read-only — returns counts by status and by type. No dry_run (nothing is mutated).
| Name | Type | Req | Description |
|---|---|---|---|
| folder_ref | string | yes | Folder name, ID, or dashboard URL |
No output schema declared.
No examples provided.
panda_action_generate_shorts_from_folder Generate Shorts from Folder ~176
Deterministically resolve a folder and submit each eligible video (CONVERTED, 5min–5h) for AI Shorts generation (POST /shorts/import-video). Each job consumes Shorts processing. dry_run=true (default) previews eligible videos. DRM-protected videos are rejected by the API and surfaced per-video.
| Name | Type | Req | Description |
|---|---|---|---|
| aspect_ratio | string | – | Output aspect ratio |
| contexts | array | – | AI context hints (e.g. 'engajamento','educacional','humor') |
| dry_run | boolean | – | true = preview only; false = submit |
| duration_preset | string | – | Clip duration range in seconds |
| folder_ref | string | yes | Folder name, ID, or dashboard URL |
| idempotency_key | string | – | Reserved client-supplied retry key |
No output schema declared.
No examples provided.
panda_action_generate_subtitles_for_folder Generate Subtitles for Folder ~215
Deterministically resolve a folder, list eligible (CONVERTED) videos, estimate the AI subtitle cost in credits, and optionally generate subtitles in one or more languages. Tiers: essential (only en/pt-BR/es, 1 credit/30min), advanced (34 langs, 1 credit/5min), pro (34 langs, 1 credit/min). dry_run=true (default) returns a preview.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | – | true = preview only; false = generate |
| folder_ref | string | yes | Folder name, ID, or dashboard URL |
| from_lang | string | – | Source language code (default 'auto') |
| idempotency_key | string | – | Reserved client-supplied key to make retries safe (not yet enforced server-side) |
| target_langs | array | yes | Subtitle language codes to generate, e.g. ['en','es'] |
| tier | string | – | Quality tier (essential restricts languages to en/pt-BR/es) |
No output schema declared.
No examples provided.
panda_action_move_videos_by_folder Move Videos Between Folders ~171
Deterministically resolve a source and target folder and move every video from the source into the target in one call. Pass target_folder_ref='root' to move to the root (no folder). Skips videos already being deleted. Free action (no credits). dry_run=true (default) returns a preview of which videos would move.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | – | true = preview only; false = move |
| idempotency_key | string | – | Reserved client-supplied key to make retries safe (not yet enforced server-side) |
| source_folder_ref | string | yes | Source folder name, ID, or dashboard URL |
| target_folder_ref | string | yes | Target folder name, ID, or dashboard URL — or 'root' to move to the root (no folder) |
No output schema declared.
No examples provided.
panda_action_preview_storage_reduction Preview Storage Reduction ~285
How much the invoice will be if the account reduces its ADDITIONAL storage — to a new total (target_total_gb) or by removing an amount (remove_gb), in GB (1 TB = 1024 GB). Without an amount, returns the current storage, what is in use and the smallest possible total. Refuses totals below what is already in use or below what the plan includes (plan storage only changes by changing plans). It never applies the change (that is done in the dashboard). dry_run=true (default) checks the new total against the plan and usage without calling billing; dry_run=false also gets the price from billing (same calculation as the dashboard cart: next invoice, next cycles, savings). Side effect of dry_run=false, same as opening the preview in the dashboard: if the account has a subscription but no default payment method, Panda's billing sets its first saved card as the default payment method.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | – | true = check the new total only; false = also get the price from billing |
| remove_gb | number | – | How much to remove from the current total, in GB. Use this OR target_total_gb. |
| target_total_gb | number | – | Desired new TOTAL storage, in GB (1 TB = 1024 GB). Use this OR remove_gb. |
No output schema declared.
No examples provided.
panda_action_provision_user Provision Team User ~137
Create a team user, resolving the role by name (or original_name/ID) to its role_id (POST /users). dry_run=true (default) previews. Validates the email format up front.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | – | true = preview only; false = create |
| string | yes | User email | |
| idempotency_key | string | – | Reserved client-supplied retry key |
| name | string | yes | User's display name |
| phone | string | – | Optional phone number |
| role_ref | string | yes | Role name or ID (e.g. 'viewer', 'editor') |
No output schema declared.
No examples provided.
panda_action_reencode_folder_videos Reencode Folder Videos ~182
Deterministically resolve a folder and re-encode every CONVERTED video with a given compression mode (no credit cost). Each video is processed again from its original file (backup): videos without the backup are refused and listed in failed. The current qualities are replaced by the re-encoded ones; encryption (HLS) is kept. dry_run=true (default) previews the affected videos.
| Name | Type | Req | Description |
|---|---|---|---|
| compression_mode | string | yes | Compression mode applied to every video: size = 'Econômica', balanced = 'Equilibrada', quality = 'Maior qualidade' (dashboard names) |
| dry_run | boolean | – | true = preview only; false = reencode |
| folder_ref | string | yes | Folder name, ID, or dashboard URL |
| idempotency_key | string | – | Reserved client-supplied retry key |
No output schema declared.
No examples provided.
panda_action_remove_subtitle_language_from_folder Remove Subtitle Language from Folder ~154
Deterministically resolve a folder and delete a subtitle language from every CONVERTED video that has it (DELETE /subtitles/{id}). DESTRUCTIVE. dry_run=true (default) previews; set dry_run=false AND confirm=true to delete. Videos without that language are simply skipped by the API.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Required safety flag to delete |
| dry_run | boolean | – | true = preview only; false = delete |
| folder_ref | string | yes | Folder name, ID, or dashboard URL |
| idempotency_key | string | – | Reserved client-supplied retry key |
| language | string | yes | Subtitle language code to remove (e.g. 'en') |
No output schema declared.
No examples provided.
panda_action_rename_folder Rename Folder ~103
Deterministically resolve a folder by name/ID/URL and rename it (PUT /folders/{id}). dry_run=true (default) previews the rename.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | – | true = preview only; false = rename |
| folder_ref | string | yes | Folder name, ID, or dashboard URL |
| idempotency_key | string | – | Reserved client-supplied retry key |
| new_name | string | yes | New folder name |
No output schema declared.
No examples provided.
panda_action_request_folder_downloads Request Folder Downloads ~266
Deterministically resolve a folder and request an async download for every CONVERTED video (POST /download-async/{externalId}). Without quality, each video is requested at the highest quality it has; with a quality, videos that don't have it are skipped with the reason. Results list each video's status and `url` when it is already ready (temporary signed link); poll the others with panda_check_download_status. dry_run=true (default) previews the requests.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | – | true = preview only; false = request |
| folder_ref | string | yes | Folder name, ID, or dashboard URL |
| format | string | – | Download format |
| idempotency_key | string | – | Reserved client-supplied retry key |
| language | string | – | Audio language: 'default' (original audio) or the code of a dubbed audio (e.g. 'en'). 'original' is read as 'default'. |
| quality | string | – | Quality: one of 240p, 360p, 480p, 720p, 1080p, 1440p, 2160p, original ('1080' is read as '1080p'). Default: the highest quality of each video. |
No output schema declared.
No examples provided.
panda_action_schedule_lives Schedule Lives ~155
Create one or more scheduled live streams in a single call (POST /lives), optionally recording into a resolved folder. Defaults like the dashboard: region us, quality_package hd, save_vod true. Refuses trial accounts and quality above the plan's maximum. Without stream_key_id the account's default stream key is used. dry_run=true (default) previews the lives that would be created.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | – | true = preview only; false = create |
| folder_ref | string | – | Optional folder (name/ID/URL) to store recordings in |
| idempotency_key | string | – | Reserved client-supplied retry key |
| lives | array | yes | Lives to create |
No output schema declared.
No examples provided.
panda_action_set_allowed_domains Set Allowed/Blocked Domains ~230
Add referer domains to the account's allow/block list for playback (POST /library/{id}?action=refer) and optionally turn domain protection on or off (block_none_refer). block_none_refer is applied first and rewrites the status of ALL the library's domains: true activates every domain (including ones turned off on purpose), false deactivates all of them and lets every request play; it is refused while a domain is still pending. With protection off, the new domains are created inactive. Resolves the library ID automatically. dry_run=true (default) previews.
| Name | Type | Req | Description |
|---|---|---|---|
| allow | array | – | Hostnames to allow (e.g. 'example.com') |
| block | array | – | Hostnames to block |
| block_none_refer | boolean | – | If set, turn domain protection on (true: active domains apply, all domains are activated) or off (false: all domains are deactivated) |
| dry_run | boolean | – | true = preview only; false = apply |
| idempotency_key | string | – | Reserved client-supplied retry key |
No output schema declared.
No examples provided.
panda_action_set_anti_download Set Anti-Download Protection ~174
Enable or disable account-wide anti-download protection (GET/PUT /block_download). Reads the current state first and only changes it if needed. Turning it on is only for plans that include it (Gold/Enterprise and others; Silver/Bronze need the "Anti-Download Simples" add-on, contracted in the dashboard; not available on Clipador/Clipper and VSL Only plans). Turning it off also turns Exclusive Playback off; a paid add-on stays billed until it is removed in the dashboard. dry_run=true (default) previews the change.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | – | true = preview only; false = apply |
| enabled | boolean | yes | true = enable anti-download, false = disable |
| idempotency_key | string | – | Reserved client-supplied retry key |
No output schema declared.
No examples provided.
panda_action_set_custom_field_for_folder Set Custom Field for Folder ~135
Deterministically resolve a folder and set a custom metadata field (key/value) on every CONVERTED video (POST /videos/{id}?custom_fields). dry_run=true (default) previews the affected videos.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | – | true = preview only; false = apply |
| folder_ref | string | yes | Folder name, ID, or dashboard URL |
| idempotency_key | string | – | Reserved client-supplied retry key |
| key | string | yes | Custom field key (max 200 chars) |
| value | string | yes | Custom field value (max 500 chars) |
No output schema declared.
No examples provided.
panda_action_set_default_subtitle_for_folder Set Default Subtitle for Folder ~151
Deterministically resolve a folder and set the default subtitle language on every CONVERTED video (POST /player?type=video). Pass language 'false' to clear the default. dry_run=true (default) previews the affected videos. Note: videos lacking that subtitle simply won't show it.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | – | true = preview only; false = apply |
| folder_ref | string | yes | Folder name, ID, or dashboard URL |
| idempotency_key | string | – | Reserved client-supplied retry key |
| language | string | yes | Subtitle language code to set as default (e.g. 'pt-BR'), or 'false' to clear |
No output schema declared.
No examples provided.
panda_action_set_folder_player_control Toggle a Player Control for Folder ~266
Enable or disable a single player control on every CONVERTED video in a folder, via player profiles, PRESERVING all other controls and without touching videos outside the folder. The big play button (dashboard 'Botão de Play Grande') is the 'play-large' control — disable it with control='play-large', enabled=false. Each video's controls are read-modify-written; when a profile has no explicit control list it inherits the global player controls, so the action materializes that global list minus/plus the control. A video on a SHARED or the default profile first gets its own copy of that profile (like the dashboard does); videos without a profile get one created and assigned. dry_run=true (default) validates + previews per-video changes, including which shared profiles end up with no videos.
| Name | Type | Req | Description |
|---|---|---|---|
| control | string | yes | Player control to toggle. 'play-large' = the big center play button. |
| dry_run | boolean | – | true = validate + preview only; false = apply |
| enabled | boolean | yes | true = show the control, false = hide/disable it |
| folder_ref | string | yes | Folder name, ID, or dashboard URL |
| idempotency_key | string | – | Reserved client-supplied retry key |
No output schema declared.
No examples provided.
panda_action_set_folder_videos_offline Set Folder Videos Offline Playback ~139
Deterministically resolve a folder and enable or disable offline (mobile app) playback for every CONVERTED video inside it, in one batch call (POST /app). dry_run=true (default) previews the affected videos.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | – | true = preview only; false = apply |
| enabled | boolean | yes | true = allow offline playback, false = disable |
| expire_days | – | – | Days until offline access expires (null = never) |
| folder_ref | string | yes | Folder name, ID, or dashboard URL |
| idempotency_key | string | – | Reserved client-supplied retry key |
No output schema declared.
No examples provided.
panda_action_set_forms_integration Set Forms/CRM Integration ~170
Create or update a forms/CRM integration by service name. Reads existing integrations (GET /forms-integration/get); updates in place if the service already exists (PUT /forms-integration/update), otherwise creates it (POST /forms-integration/save). dry_run=true (default) previews.
| Name | Type | Req | Description |
|---|---|---|---|
| api_key | string | – | API key/token |
| api_url | string | – | API URL (if the service uses one) |
| dry_run | boolean | – | true = preview only; false = save |
| idempotency_key | string | – | Reserved client-supplied retry key |
| name | string | – | Display name |
| service | string | yes | Integration service identifier (e.g. 'rd_station') |
| webhook_url | string | – | Webhook URL (if applicable) |
No output schema declared.
No examples provided.
panda_action_set_webhook Set Account Webhook ~117
Idempotently set the account webhook URL. Reads the current webhook (GET /user/webhook); if a different one exists it is removed (DELETE /user/webhook/{id}) before creating the new one (POST /user/webhook). dry_run=true (default) previews the change.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | – | true = preview only; false = apply |
| idempotency_key | string | – | Reserved client-supplied retry key |
| url | string | yes | Webhook URL to receive Panda events |
No output schema declared.
No examples provided.
panda_action_transfer_credits_to_subaccount Transfer Credits to Subaccount ~113
Resolve a subaccount by name or ID and transfer credits to it (POST /user/limit/transfer_credits). Checks the parent balance first. dry_run=true (default) previews the transfer.
| Name | Type | Req | Description |
|---|---|---|---|
| credits | integer | yes | Number of credits to transfer |
| dry_run | boolean | – | true = preview only; false = transfer |
| idempotency_key | string | – | Reserved client-supplied retry key |
| subaccount_ref | string | yes | Subaccount name or ID |
No output schema declared.
No examples provided.
panda_add_cta Add CTA ~315
Add a CTA (Call-to-Action) button to a video. Placement 'inside' = overlay on the video, 'outside' = below the video. Builds the same payload the dashboard's button editor sends.
| Name | Type | Req | Description |
|---|---|---|---|
| append_website_query_params | boolean | – | Append the page's URL query params to the button's URL |
| background_color | string | – | Background color, hex (default: #3e50f7) |
| background_hover_color | string | – | Background color on hover, hex |
| custom_html | string | – | Raw HTML/CSS/JS to render instead of the styled button (advanced) |
| end_time | number | – | Seconds into the video when the button disappears. Omit to show until the end of the video. |
| placement | string | yes | Where to place the CTA |
| position | string | – | Button position on the video overlay. Only applies to placement='inside'. |
| size | string | – | Button size (default: small) |
| start_time | number | – | Seconds into the video when the button appears. Omit (with end_time) for the whole video. |
| text | string | – | Button label text. Required unless custom_html is set. |
| text_color | string | – | Text color, hex (default: #FFFFFF) |
| text_hover_color | string | – | Text color on hover, hex |
| url | string | – | URL opened when the button is clicked. Required unless custom_html is set. |
| video_id | string | yes | Video ID |
No output schema declared.
No examples provided.
panda_add_end_thumbnail Add End Thumbnail ~115
Upload an end thumbnail — an image shown after the video finishes. Provide `image_url` pointing to a publicly reachable JPG, PNG or GIF up to 5 MB. The upload also creates the end CTA, so the image shows in the player right away. A video has one end thumbnail: a new upload replaces the previous one. Returns {response: {endThumbnail: <name>}}.
| Name | Type | Req | Description |
|---|---|---|---|
| image_url | string | yes | Public URL of the image to upload |
| video_id | string | yes | Video ID |
No output schema declared.
No examples provided.
panda_add_pause_thumbnail Add Pause Thumbnail ~145
Upload a pause thumbnail — an image shown when the viewer pauses the video. Provide `image_url` pointing to a publicly reachable JPG, PNG or GIF up to 5 MB. The upload also creates the pause CTA, so the image shows in the player right away, for the whole video. A video can have several pause thumbnails. Returns {response: {pauseThumbnail: [<thumb_name>]}} — keep that name: panda_delete_thumbnail needs it to remove this image. Time window and button overlay are edited in the dashboard pause-thumbnail editor.
| Name | Type | Req | Description |
|---|---|---|---|
| image_url | string | yes | Public URL of the image to upload |
| video_id | string | yes | Video ID |
No output schema declared.
No examples provided.
panda_add_thumbnail Add Start Thumbnail (Cover) ~106
Upload the video cover (start thumbnail) — the image shown before the user presses play. Provide `image_url` pointing to a publicly reachable image (PNG/JPG/GIF); the tool downloads it and uploads as multipart to the Panda API. Replaces any existing start thumbnail. After this returns, the cover is active immediately for the player.
| Name | Type | Req | Description |
|---|---|---|---|
| image_url | string | yes | Public URL of the image to use as the cover |
| video_id | string | yes | Video ID |
No output schema declared.
No examples provided.
panda_add_tutor_videos Add Tutor Videos ~177
Add videos to a Tutor AI assistant. Additive: only videos not yet bound are added; videos already bound stay as they are and nothing is unbound (use panda_remove_tutor_video to remove one). Only CONVERTED videos: if any ID doesn't exist or isn't CONVERTED, the whole request is refused. Billing: each NEW video without a subtitle in the tutor's language gets a transcription, charged at ceil(minutes/5) credits per video (Gold/Enterprise plans outside trial get free transcriptions up to a daily limit); without enough credits the API refuses before binding anything.
| Name | Type | Req | Description |
|---|---|---|---|
| assistant_id | string | yes | Tutor assistant ID |
| lang | string | – | Language code; only used when the tutor has no language set |
| video_ids | array | yes | Video IDs to add (max 50) |
No output schema declared.
No examples provided.
panda_add_videos_to_funnel Add Videos to Funnel ~94
Add one or more videos to a funnel with optional coordinates. Every call must mark exactly one video with is_first: true — it becomes the entry video. To add a video without changing the entry, also send the current entry video (from panda_get_funnel) with is_first: true.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Funnel ID |
| videos | array | yes | Videos to add with optional positions |
No output schema declared.
No examples provided.
panda_add_videos_to_playlist Add Videos to Playlist ~58
Add videos to a playlist with order. Returns the updated playlist video entries [{video_id, playlist_id, order}].
| Name | Type | Req | Description |
|---|---|---|---|
| playlist_id | string | yes | Playlist ID |
| videos | array | yes | Videos to add with order |
No output schema declared.
No examples provided.
panda_apply_profile_to_videos Apply Profile to Videos ~154
Link a player profile to videos — pass video_ids OR folder_id (every video in that folder, any status; subfolders are not included). A video that had its own customized player (exclusive profile) loses that customization. Up to 5 video_ids are applied immediately; more videos, or any folder_id, are queued and return status 'pending' — confirm later with panda_get_profile (videos_count). Returns {status, message}.
| Name | Type | Req | Description |
|---|---|---|---|
| folder_id | string | – | Folder ID — applies to all its videos (instead of video_ids) |
| profile_id | string | yes | Profile ID to apply |
| video_ids | array | – | List of video IDs to apply the profile to (max 50) |
No output schema declared.
No examples provided.
panda_cancel_partial_deletion Cancel Partial Deletion ~122
Undo a partial deletion of ONE video before it is executed: the qualities/backup come back. Without qualities and backup, everything pending for the video is restored. Refused once the final deletion has started. Does not recover videos in the trash.
| Name | Type | Req | Description |
|---|---|---|---|
| backup | boolean | – | true = remove the original uploaded file (backup) |
| qualities | array | – | Qualities to remove, as in the video's available_resolutions (e.g. ['1080p', '720p']) |
| video_id | string | yes | Video ID (one video per call) |
No output schema declared.
No examples provided.
panda_check_download_status Check Download Status ~206
Check the status of an async download request (same format/quality/language used in panda_request_download). Returns {status, url?} — `url` (a temporary signed link) is present when status is 'ready'.
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | yes | Requested format |
| language | string | yes | Audio language: 'default' for the original audio, or the code of a dubbed audio of the video (e.g. 'en', 'es' — see audios[] in panda_get_video). 'original' is read as 'default'. |
| quality | string | yes | Quality: one of 240p, 360p, 480p, 720p, 1080p, 1440p, 2160p, original ('1080' is read as '1080p'). 'original' is the uploaded file; the others must be in the video's available_resolutions. |
| video_external_id | string | yes | Video external ID |
No output schema declared.
No examples provided.
panda_confirm_ai_ebook_pdf Confirm AI eBook PDF ~111
Finish the PDF upload started with panda_get_ai_ebook_upload_url (kind=pdf): the PDF is checked (exists, not empty, up to 15 MB, valid PDF) and becomes the eBook of that language. With upload_success=false the uploaded file is discarded instead.
| Name | Type | Req | Description |
|---|---|---|---|
| lang | string | yes | Same lang used to get the upload URL |
| upload_success | boolean | – | false = the PUT failed; discard the file |
| video_id | string | yes | Video ID |
No output schema declared.
No examples provided.
How do I install the Panda Video MCP server?
Panda Video is a hosted endpoint at https://mcp.pandavideo.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · mcp.pandavideo.com
claude mcp add --transport http com-pandavideo-mcp 'https://mcp.pandavideo.com/mcp'
What is the Panda Video MCP server?
Panda Video is an MCP server listed in the public MCP registry as com.pandavideo/mcp. Video hosting: upload, organize and configure videos, analytics, AI subtitles and Shorts. This page covers its hosted endpoint (https://mcp.pandavideo.com/mcp).
Is the Panda Video MCP server safe to use?
Panda Video scores 92 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Panda Video MCP server expose?
Panda Video exposes 216 tools: panda_list_videos, panda_get_video, panda_update_video, panda_delete_videos, panda_get_videos_status, and 211 more. Their descriptions and schemas cost roughly 27,542 tokens of context every time the server is loaded.
Does the Panda Video MCP server require authentication?
Yes. Panda Video asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.
Is the Panda Video MCP server still maintained?
Panda Video is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What did VerifyMCP test on the Panda Video MCP server?
VerifyMCP ran 13 checks on Panda Video, covering TLS certificate, Authorization, HTTPS, HSTS header and 9 more. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.