xShip PATCHED — Issues #40 through #59 Base: plugin.video.xship v2026.01.18 (michaz1988) == Bug fixes == #40 — Python 3.12+ escape sequences + critical bugs ~74 regex patterns prefixed with r''. Four crashes fixed: evpKDF bytes concatenation, log_utils exception, cleantitle.translate(), MutableMapping import. Zero functional changes. #41 — super_meta bug breaks actor movie listing super_meta dict passed correctly to getSources(). Actor credit listings now work. #59 — Startup blocks 17s on unreachable SMB download path Download path check moved to daemon thread with 2s timeout. Shows "Download-Pfad nicht erreichbar" notification instead of freezing. #50 — serienstream.to (s.to) xShip source provider Complete rewrite of serienstream.py from xStream browser plugin to proper xShip source class. TMDB title matching, s.to login, season/episode navigation, hoster button parsing (German audio). VOE resolveurl support. == Features / enhancements == #42 — Download manager support (JD1, JD2, MyJD, PyLoad) Context menu "Download" entry for movies and episodes. Download manager selected via addon settings. MyJD uses encrypted credential storage. #48 — Medien-Info: stream resolution, codec, audio language New context menu entry probes real stream URL. Shows resolution, codec, FPS, bitrate, audio language. Supports MP4 (box parsing, 64KB fetch), HLS, DASH. 20-second countdown with cancel support. Bug fix: control.sleep(250) used seconds not ms — froze UI for 4 min on slow-resolving providers. Fixed to control.sleep(0.25). #54 — YouTube API key setup without modifying YouTube addon files Writes api_keys.json to userdata at startup. Keys survive YouTube addon updates. Never overwrites existing user-configured keys. #55 — MyJD: sourceUrl for direct stream URLs JDownloader receives the direct stream URL alongside the referrer page URL. #56 — Kinoger: JD download via VOE redirect VOE redirect URL resolved first and passed as download URL to JD. #58 — Trailer context menu (TMDB + YouTube waterfall) "Trailer ansehen" / "Watch Trailer" context menu. 6-step waterfall: KinoCheck > TMDB-DE > YouTube-DE > Trakt > TMDB-EN > YouTube-EN. Age-restricted videos pre-filtered. Duration filter 60-360s. Only shown when YouTube addon is installed with API key.