# Universal transcoder start.mpd returns 400 when called from custom player

**URL:** <https://forums.plex.tv/t/universal-transcoder-start-mpd-returns-400-when-called-from-custom-player/933458>\
**Category:** Dev/API Corner\
**Tags:** server-mac, apple-tv, other-dev\
**Created:** [November 13, 2025, 3:47am UTC](https://forums.plex.tv/t/universal-transcoder-start-mpd-returns-400-when-called-from-custom-player/933458 "2025-11-13T03:47:03Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Anqui3tas](https://avatars.discourse-cdn.com/v4/letter/a/76d3ee/32.png) [@Anqui3tas](https://forums.plex.tv/u/Anqui3tas)\
**Post date:** [November 13, 2025, 3:47am UTC](https://forums.plex.tv/t/universal-transcoder-start-mpd-returns-400-when-called-from-custom-player/933458/1 "2025-11-13T03:47:03Z")

</div>

I’m building a small custom player and I can’t get Plex’s universal transcoder to start. Regular library fetches/direct play work, but every call to video/:/transcode/universal/start.mpd comes back 400 Bad Request.

What I’m doing:

- GET /video/:/transcode/universal/decision with the same query/headers Plex Web uses (path, session, mediaIndex, partIndex, X-Plex-\* identifiers, X-Plex-Client-Profile-Extra, etc.). PMS returns 200.

- Immediately GET /video/:/transcode/universal/start.mpd with the exact same parameters and token.

- PMS responds with HTTP 400 and 

I’m probably missing something terribly simple, I’ve been staring at this for a while now.

---

<div class="post-metadata">

**Author:** ![Anqui3tas](https://avatars.discourse-cdn.com/v4/letter/a/76d3ee/32.png) [@Anqui3tas](https://forums.plex.tv/u/Anqui3tas)\
**Post date:** [November 13, 2025, 7:29pm UTC](https://forums.plex.tv/t/universal-transcoder-start-mpd-returns-400-when-called-from-custom-player/933458/2 "2025-11-13T19:29:11Z")

</div>

Ok I was able to get transcoding (playback and audio) working on iOS.

however the plex dashboard shows nothing is playing (bandwidth spike, but thats it) any tips on that one? I’m including everything in the timeline, but no such luck yet.

---

<div class="post-metadata">

**Author:** ![MaxLand](https://avatars.discourse-cdn.com/v4/letter/m/5f8ce5/32.png) [@MaxLand](https://forums.plex.tv/u/MaxLand)\
**Post date:** [February 9, 2026, 5:18pm UTC](https://forums.plex.tv/t/universal-transcoder-start-mpd-returns-400-when-called-from-custom-player/933458/3 "2026-02-09T17:18:59Z")

</div>

I’m struggling with the same issue, what was your fix?
