mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-11 02:46:16 -08:00
fix(xtream): keep sparse VOD details playable
This commit is contained in:
1 parent
3c342bc555
commit
ec6df196f5
27 files changed
+1367
-239
No files matched your search
@@ -91,6 +91,34 @@ If stored Xtream playback credentials contain an invalid server URL or blank
|
||||
username/password, stream URL construction returns an empty URL instead of
|
||||
throwing during playback.
|
||||
|
||||
VOD playback uses the standard
|
||||
`/movie/{username}/{password}/{streamId}.{containerExtension}` URL after
|
||||
resolving the stream id and container extension as one source. Fields from
|
||||
`movie_data` take priority, with the top-level catalog fields used as a
|
||||
fallback when extended metadata is absent or incomplete. A source requires a
|
||||
positive integer id and a non-empty container extension; otherwise URL
|
||||
construction returns an empty string.
|
||||
|
||||
The Electron catalog cache does not persist the container extension. If the
|
||||
merged detail response and cached row still cannot resolve a source, the detail
|
||||
loader requests the exact VOD from its provider category and merges that raw
|
||||
catalog row in memory. An Electron route category uses the SQLite row id, so
|
||||
the loader maps it through the complete persisted category set, including
|
||||
hidden categories, before sending the provider `category_id`; PWA falls back
|
||||
to its API-backed visible categories, and an unresolved database id is never
|
||||
sent as though it were a provider id. This recovery request is skipped when
|
||||
`movie_data` or the cached catalog fields are already sufficient, and a failed
|
||||
lookup leaves the item safely unplayable. Detail requests are generation- and
|
||||
playlist-guarded, and detail teardown invalidates the active generation, so a
|
||||
late response cannot replace a newer selection or repopulate a closed detail.
|
||||
|
||||
Metadata availability and VOD playability are independent. An empty or sparse
|
||||
`get_vod_info` response keeps the curated fallback detail page, but that page
|
||||
offers the same Play/Resume, Favorite, and Download actions when the source
|
||||
resolves. An unresolved source exposes no actions. Playback and download
|
||||
descriptors also fall back to the catalog title and poster after `info` and
|
||||
`movie_data`.
|
||||
|
||||
## Catch-Up Playback URLs
|
||||
|
||||
Xtream-compatible portals differ on archive playback URL shape. IPTVnator
|
||||
|
||||
Reference in new issue
Block a user