Skip to content

new resolver playmate.to / firestream fix / streamix + voe additional domains - #1465

Merged
Gujal00 merged 5 commits into
Gujal00:masterfrom
TempleLain:temple-patches
Aug 21, 2026
Merged

new resolver playmate.to / firestream fix / streamix + voe additional domains#1465
Gujal00 merged 5 commits into
Gujal00:masterfrom
TempleLain:temple-patches

Conversation

@TempleLain

@TempleLain TempleLain commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

This PR contains four changes: a new resolver for playmate.to, a pattern fix for firestream, and additional domains for streamix and voe.

playmate.py — new resolver (playmate.to)
Example link: https://playmate.to/watch/xu0vZ0NnFnRDu
The player POSTs the filecode to https://{host}/api/s and receives JSON containing a plain HLS streaming URL plus optional subtitles. The API requires a User-Agent header (403 without one); UA and Referer are appended to the returned URL. The pattern also covers the /embed/, /e/ and /v/ link forms the site itself lists as valid. Verified end to end: resolves to the HLS playlist, segments confirmed as valid MPEG-TS.
Note: the site offers a custom-domain feature for uploaders.

text for the prevoius pr for the new resolver

Adds a resolver for playmate.to, which is not covered by any existing plugin.

The /watch/ page is only an SPA shell; the player runs in an iframe on
/embed/. The embed page loads an obfuscated player-core.min.js, but the
stream itself needs no deobfuscation at runtime:

POST https://playmate.to/api/s
body: {"c": "", "d": "web"}

The JSON response uses short keys: sx = stream URL, kx = subtitle list
(sl = language, sf = file path), tx/ix/lx/ax/cx = metadata. sx is a plain HLS
master playlist, no encryption involved - the site's crypto-js/pako usage is
only for its telemetry beacon on /api/v.

Notes:

The API returns 403 without a User-Agent header. Referer and Origin are not
checked. The stream host itself accepts requests without any headers, but the
request headers are appended to the returned URL to stay consistent with the
other resolvers.

Segments are served as .css/.js with matching fake MIME types but are valid
MPEG-TS (verified: 670/670 and 810/810 sync bytes on the 188-byte grid).

/e/ and /v/ currently 404 on the site, but are listed as valid link formats
in its own takedown form, so they are included in the pattern - only the
filecode is taken from the URL.

Tested against master (28fdaa6) on Kodi 21.3 (64-bit) / Android 16:
valid_url, both /watch/ and /embed/ forms, subtitle mapping, and
HostedMediaFile.resolve() all resolve to a playable master playlist.
Confirmed playing in Kodi.


firestream.py — media_id pattern fix
firestream media ids can contain hyphens, e.g. https://firestream.to/e/e-5DNrdv. The current character class [0-9a-zA-Z_] silently truncates the id at the hyphen (the pattern still matches but only captures e), so the resolve API call fails. Added - to the character class. Verified against the live link above: resolves to the HLS playlist, segments confirmed as valid MPEG-TS. Existing ids without hyphens are unaffected.


streamix.py — additional domains
Adds viewdara.com and thebesthosterv.com. Both are mirrors of the platform already covered by this resolver: the same filecode returns the identical streaming URL through viewdara, thebesthosterv, kinoger.pw and vidara.to. Only domains and the name alternation are extended — the existing /api/stream POST with device: web works unchanged, no get_url special-casing needed. Verified end to end against a live filecode on both new domains: resolves to the HLS playlist, segments confirmed as valid MPEG-TS. Existing domains unaffected.


voesx.py — additional domains (redirect targets)
Adds johnbeyondnation.com plus ten further VOE rotation domains. johnbeyondnation.com is a current redirect target: kinoger.ru and chuckle-tube.com (both already listed) 302-redirect to https://johnbeyondnation.com/e/, and the server sets a voe_session cookie. The other ten were found by following the redirect chain from the already-listed jessicayeahcatch.com, which 302-hops deterministically through jeanprofessorcentral.com → juliewomanwish.com → garylargeavailable.com → jennifereconomicgive.com → pamelachangemission.com → ellenpoliticalfollow.com → caseyimpactstation.com → matthewhotelscience.com → jessicachoosemake.com → stevenfamilyedge.com (reproduced across three runs). None of these currently match, so links pointing directly at any of them fail. All use the standard /e/ form; the resolver code path is identical to the existing VOE domains.

@Gujal00

Gujal00 commented Aug 21, 2026

Copy link
Copy Markdown
Owner

Buddy, I mentioned before please raise one pr per plugin. It makes it difficult to track if multiple plugins are changed in a single PR.

@Gujal00
Gujal00 merged commit 35da7d2 into Gujal00:master Aug 21, 2026
@TempleLain

Copy link
Copy Markdown
Contributor Author

Buddy, I mentioned before please raise one pr per plugin. It makes it difficult to track if multiple plugins are changed in a single PR.

Oh damm totally forgot sorry next time i will do it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants