JW Player integration
JW Player (JWX) Management API v2 manages a video library and its playback setup. An agent can create media from a URL (fetch) or register externally hosted media, update titles, tags and custom params, clip or re-upload media, manage text tracks (captions, chapters), thumbnails and media renditions, build manual, dynamic, search, recommendations, article-matching and watchlist playlists, configure players and advertising schedules, manage tags, MRSS import sources and transcoding configs, and subscribe webhooks to library events. Live channels, Broadcast Live streams, ingest points and stream secrets, DRM, SSAI, app configs, protection rules and player logo or bidding configs are not exposed. Authentication is a v2 API secret from the JWX dashboard (Developer tools, Management API, Show Secret), sent as a Bearer token. Most tools need the site_id (property id) of the property. The API allows 60 requests per minute.
Say what should happen.
The workflow builds itself.
What you can do with JW Player
Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.
Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.
Import, 5 operations
create_importCreate importPOSTCreate an MRSS import source: JWX reads the feed URL and imports its items as media.delete_importDelete importDELETEDelete an MRSS import source; JWX stops reading that feed.get_importGet importGETGet one MRSS import source by id, with its feed URL, state and ingest settings.list_importsList importsGETList the MRSS import sources of a property, with each one's feed URL and state.update_importUpdate importPATCHUpdate an MRSS import source's feed URL, state, tags or ingest settings.
Media, 5 operations
create_mediaCreate mediaPOSTCreate a media item. Use upload.method fetch with upload.download_url to have JWX fetch a public file, or hosting_type external with upload.source_url to register a self-hosted file. Returns the media id; processing runs after.delete_mediaDelete mediaDELETEDelete a media item from the library.get_mediaGet mediaGETGet one media item by id: status (for example processing or ready), hosting type, duration and metadata such as title, tags and custom params.list_mediaList mediaGETList or search the media in a property's library (page, page_length, q query, sort). Each item carries its id, status and metadata. Use the id with get_media or update_media.update_mediaUpdate mediaPATCHUpdate a media item's metadata (title, description, tags, custom params, publish dates...). Tags and custom_params replace the whole current set: send the existing values you want to keep.
Player, 5 operations
create_playerCreate playerPOSTCreate a player configuration on a property, optionally linked to an advertising schedule and a recommendations playlist.delete_playerDelete playerDELETEDelete a player configuration.get_playerGet playerGETGet one player configuration by id.list_playersList playersGETList the players configured on a property.update_playerUpdate playerPATCHUpdate a player's name, setup configuration, custom params or linked advertising schedule and recommendations playlist.
Schedule, 5 operations
create_ad_scheduleCreate ad schedulePOSTCreate an advertising schedule (ad client, ad breaks and rules) on a property. Returns the schedule with its id.delete_ad_scheduleDelete ad scheduleDELETEDelete an advertising schedule from a property.get_ad_scheduleGet ad scheduleGETGet one advertising schedule by id, with its client, breaks and rules.list_ad_schedulesList ad schedulesGETList the advertising schedules of a property, with each one's id and settings. Use an id to link a schedule to a player in create_player or update_player.update_ad_scheduleUpdate ad schedulePATCHUpdate an advertising schedule's client, breaks, rules or other settings.
Text track, 5 operations
create_text_trackCreate text trackPOSTAdd a text track (captions, subtitles, chapters...) to a media from a URL: upload.method fetch with download_url (SRT or VTT). At most 50 text tracks per media. Set upload.auto_publish true to publish it on upload.delete_text_trackDelete text trackDELETEDelete a text track from a media item.get_text_trackGet text trackGETGet one text track of a media item by id, with its kind, label, language and status.list_text_tracksList text tracksGETList the text tracks (captions, subtitles, chapters...) of a media item, with their status (draft or ready).update_text_trackUpdate text trackPATCHUpdate a text track's label, language or position.
Thumbnail, 5 operations
create_thumbnailCreate thumbnailPOSTCreate a thumbnail for a media, from a frame of the video (source_type thumbstrip_image with video_position or thumbstrip_index) or from an image URL (custom_upload with method fetch and download_url).delete_thumbnailDelete thumbnailDELETEDelete a thumbnail.get_thumbnailGet thumbnailGETGet one thumbnail by id, with its media, type and status.list_thumbnailsList thumbnailsGETList the thumbnails of a property, with each one's media and status.update_thumbnailUpdate thumbnailPATCHUpdate a thumbnail's relationship to its media, for example to make it the media's poster image.
Webhook, 5 operations
create_webhookCreate webhookPOSTSubscribe an HTTPS URL to library events (for example media_available) on one or more properties. The shared secret that signs deliveries is not passed back here.delete_webhookDelete webhookDELETEDelete a webhook subscription.get_webhookGet webhookGETGet one webhook subscription by id, with its URL, events and properties.list_webhooksList webhooksGETList the webhooks on the account, with their URL, events and properties.update_webhookUpdate webhookPATCHUpdate a webhook's URL, events, name, description or properties.
Article matching playlist, 4 operations
create_article_matching_playlistCreate article matching playlistPOSTCreate a article matching playlist on a property. Returns the playlist with its id.delete_article_matching_playlistDelete article matching playlistDELETEDelete a article matching playlist.get_article_matching_playlistGet article matching playlistGETGet a article matching playlist by id, with its settings.update_article_matching_playlistUpdate article matching playlistPATCHUpdate a article matching playlist's title, description or selection settings. Fields left out keep their current value.
Dynamic playlist, 4 operations
create_dynamic_playlistCreate dynamic playlistPOSTCreate a dynamic playlist (media selected by tag, custom param and recency rules) on a property. Returns the playlist with its id.delete_dynamic_playlistDelete dynamic playlistDELETEDelete a dynamic playlist.get_dynamic_playlistGet dynamic playlistGETGet a dynamic playlist by id, with its settings.update_dynamic_playlistUpdate dynamic playlistPATCHUpdate a dynamic playlist's title, description or selection settings. Fields left out keep their current value.
Manual playlist, 4 operations
create_manual_playlistCreate manual playlistPOSTCreate a manual playlist (a hand-picked list of media) on a property. Returns the playlist with its id.delete_manual_playlistDelete manual playlistDELETEDelete a manual playlist.get_manual_playlistGet manual playlistGETGet a manual playlist by id, with its settings.update_manual_playlistUpdate manual playlistPATCHUpdate a manual playlist's title, description or selection settings. Fields left out keep their current value.
Media rendition, 4 operations
create_media_renditionCreate media renditionPOSTCreate a rendition of a media item from a rendition template.delete_media_renditionDelete media renditionDELETEDelete one rendition of a media item.get_media_renditionGet media renditionGETGet one rendition of a media item by id.list_media_renditionsList media renditionsGETList the renditions (encoded video or audio sources) of a media item.
Recommendations playlist, 4 operations
create_recommendations_playlistCreate recommendations playlistPOSTCreate a recommendations playlist on a property. Returns the playlist with its id.delete_recommendations_playlistDelete recommendations playlistDELETEDelete a recommendations playlist.get_recommendations_playlistGet recommendations playlistGETGet a recommendations playlist by id, with its settings.update_recommendations_playlistUpdate recommendations playlistPATCHUpdate a recommendations playlist's title, description or selection settings. Fields left out keep their current value.
Search playlist, 4 operations
create_search_playlistCreate search playlistPOSTCreate a search playlist on a property. Returns the playlist with its id.delete_search_playlistDelete search playlistDELETEDelete a search playlist.get_search_playlistGet search playlistGETGet a search playlist by id, with its settings.update_search_playlistUpdate search playlistPATCHUpdate a search playlist's title, description or selection settings. Fields left out keep their current value.
Watchlist playlist, 4 operations
create_watchlist_playlistCreate watchlist playlistPOSTCreate a watchlist playlist on a property. Returns the playlist with its id.delete_watchlist_playlistDelete watchlist playlistDELETEDelete a watchlist playlist.get_watchlist_playlistGet watchlist playlistGETGet a watchlist playlist by id, with its settings.update_watchlist_playlistUpdate watchlist playlistPATCHUpdate a watchlist playlist's title, description or selection settings. Fields left out keep their current value.
Playlist, 3 operations
delete_playlistDelete playlistDELETEDelete a playlist of any type.get_playlistGet playlistGETGet one playlist by id, whatever its type.list_playlistsList playlistsGETList the playlists of a property, all types together, with each one's id and type. Use the type-specific get or update tool with the id.
Transcoding config, 2 operations
get_transcoding_configGet transcoding configGETRetrieve the details of a specific custom transcoding config This endpoint returns only custom transcoding configs.list_transcoding_configsList transcoding configsGETList all custom transcoding configs for a site This endpoint returns only custom transcoding configs. An empty response means the site is using the built-in JWX Default config.
Clip, 1 operation
clip_mediaClip mediaPUTCreates a new `renditions` (CMAF VOD) media by clipping an existing `renditions` VOD source. Clip in/out points are optional; if omitted, the full source media is captured.
Publish, 1 operation
publish_text_trackPublish text trackPUTEnables a text track to be delivered via the Delivery API by changing the track status from `draft` to `ready`.
Remove tag, 1 operation
remove_tagRemove tagPUTRemove a tag from every media and playlist of a property and delete it.
Rename tag, 1 operation
rename_tagRename tagPUTRenames a tag across all associated media and playlist resources The time to complete the tag renaming depends upon the number of associated media and playlists.
Reupload, 1 operation
reupload_mediaReupload mediaPUTInitiates a reupload of a media, replacing its file or URL and optionally changing its `hosting_type` (limit of 10,000 reuploads per media).
Tag, 1 operation
create_tagCreate tagPOSTCreate a tag on a property, to apply to media and playlists.
Unpublish, 1 operation
unpublish_text_trackUnpublish text trackPUTPrevents a text track from delivering via the Delivery API by changing the track status from `ready` to `draft`.
Use JW Player from Claude Code, Cursor or Codex
Connect JW Player in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its JW Player operations become tools the client can call, next to every other integration you connected.
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"
[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"{
"mcpServers": {
"livecontext": {
"type": "http",
"url": "https://livecontext.ai/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}How to connect JW Player
- Create your workspace
Sign up free. Nothing to install.
- Connect JW Player once
Add your JW Player connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.
- Describe the job in chat
The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.
JW Player integration FAQ
What can you do with the JW Player integration?
LiveContext exposes 75 operations on JW Player, covering import, media, player and schedule.
