We are building an IPTV client with a Stalker Middleware 5.2.0 portal. We can successfully play standalone VOD movies using type=vod, action=create_link, cmd=/media/{id}.mpg. The problem is with series/episode playback.
Portal: https://[portal]/stalker_portal/server/load.php
Middleware version: Stalker 5.2.0
How episodes are fetched
We call type=vod, action=get_ordered_list, movie_id={seriesId} to get the episodes for a season. Each episode item looks like this:
{
"id": "886710",
"video_id": "36403",
"season_id": "27657",
"series_number": "29",
"cmd": null,
"series_files": "1",
"is_episode": true,
"name": "S01 E29 | Episode Title"
}
Key observations:
cmd is null on every episode item
video_id: "36403" is shared across all 7 seasons of the same show — it's the parent series ID
id (e.g.
886710) is unique per episode, but appears to be a database row ID, not a media storage IDseries_files: "1"— only one language track
What we've tried
Attempt 1: seriesCmd + series=episode_number (MAG standard)
Use the parent series cmd (/media/36403.mpg) + series=29 (the episode's series_number):
Result: Returns a CDN URL, but same hash for every episode regardless of series value. The series param is a language-variant selector (for series_files), not an episode selector. Confirmed: series=28 and series=29 return identical CDN paths, only the token differs.
Attempt 2: episodeId + series=1
Use the episode's own id as the media path: cmd=/media/886710.mpg, series=1:
Result: Returns a unique CDN URL per episode (different hash per episode ID), but plays completely wrong content — unrelated videos from random other shows. The numeric episode IDs appear to collide with media file IDs of unrelated content.
Attempt 3: type=series instead of type=vod
Result: Portal returns false. type=series is not supported on this portal.
Attempt 4: get_short_description for episode ID
Result: Portal returns null for episode IDs.
Attempt 5: seasonId + series_number as cmd
type=vod, action=create_link, cmd=/media/26385.mpg, series=29
→ http://[portal]/stalker_portal/media/26385.mpg?token=... (portal-proxy URL → HTTP 404)
Result: Portal proxies the request — the file doesn't exist on the portal itself, it's only on the CDN.
What we know works
- Standalone VOD movies: cmd=/media/{id}.mpg, series=1 → correct CDN stream
The question
In Stalker Middleware 5.2.0, how do you get the correct playable stream URL for a specific episode of a series, when:
Episode items have cmd: null
The series parameter in
create_linkdoes not select episodesEpisode id values resolve to wrong content via
/media/{id}.mpg
Is there a different action (e.g. get_link, get_video_info) or a different parameter combination for create_link that maps to the correct per-episode media file? Do real MAG STBs use a completely different flow for series episode playback?
Any pointer to the Stalker Middleware API documentation for series/episode create_link would also help.