E2iPlayer for E2 (Python 3)
This is a mirror of zadmario e2iplayer including Python3 preparations by jbleyel
IPTV_VERSION = "2026.08.11.02"
● Watched flag, Sidecar
## Watched flag: from "favourites-only, on/off" to a full system for every host
- Now works across **all four hosts** (FilmPalast, SerienStreamTo, YouTube, Favourites), not just Favourites.
- New intermediate state **"started"**: unwatched → started → watched (previously only unwatched/watched).
- "Started" is set automatically the moment a stream genuinely begins playing – not on a download, and not on a failed start.
- Automatic upgrade to "watched" once 95% of the runtime has been watched (previously: Favourites only, 80%, now everywhere).
- **Seasons/series are now computed automatically for the first time**: watched only once every episode is watched, started once at least one episode has progress – updates immediately after watching, no manual step needed.
- Visual indicator via a 32x32 icon overlay on the item's icon (`WatchedBadge.png`/`StartedBadge.png`).
- The MENU key now offers "Set watched"/"Unset watched" in every host (previously this action only existed internally for Favourites).
- The "Allow watched flag" toggle plus the watched/started colors now live centrally in the global E2iPlayer settings (previously: toggle + color only in Favourites' own menu, with no "started" color at all).
## Favourites integration (entirely new)
- Watched/started state now syncs between the Favourites host and the actual underlying host (e.g. mark something watched in Favourites → it also shows watched directly in the YouTube/FilmPalast/SerienStreamTo host, and vice versa) – previously Favourites tracked its own, isolated marker with no connection to the real hosts at all.
- The MENU key now additionally offers "Add to favourites"/"Remove from favourites" (previously only reachable via the blue button).
## Sidecar files on download (cover/info) – centralized
- Previously every downloader (`hlsdownloader.py`, `mergedownloader.py`, `wgetdownloader.py`) had its own duplicated sidecar logic (`.txt`/`.jpg` next to the video file). Now shared in one new file, `downloaderhelpers.py`.
- The "Create sidecar files" setting is now a single global option instead of one per host.
- `.txt`/`.jpg` sidecar files are now actually updated when their content changes (previously: created once, never touched again afterward).
- Renaming a downloaded file now also renames its sidecar files.
- Determining chapter/video duration while merging downloads now runs asynchronously instead of blocking.
## New error indicator in the mirror picker ("Select link")
- If resolving a chosen streaming mirror fails, a brief notice is shown first, then the picker reopens – the failing mirror is shown in red text with an error icon overlaid on its (now always-visible) link icon.
- This marking is purely session-based and disappears as soon as the mirror list is freshly fetched from the host again.
● Update URLparser
*Added vidavra.cc hoster
● Update Skin for youtubeuserlinks