fix(playback): perverzija na nowy hoster, naughtymachinima re-resolve na reset
Dwa zgloszenia z apki, dwa rozne pierwotne powody. perverzija (zgloszenie af9be63a, 520 bledow "Input does not start with #EXTM3U", ZERO sukcesow): strona porzucila player xtremestream/xs1.php i osadza teraz mixdrop. Stare URL-e xs1.php oddaja HTML zamiast manifestu HLS, stad kazdy playback padal. Rejestr przelaczony z natywnego perverzija.extract na _embed_iframe.extract, ktory wyluskuje mixdrop i oddaje type='hoster' -> telefon resolwuje w WebView. Natywny ekstraktor zostaje w drzewie, gdyby xtremestream wrocil. UWAGA co do weryfikacji: mixdrop gejtuje odtwarzanie za adsco.re (antybot). Sprawdzone w prawdziwym Chrome na IP residential - MDCore.wurl zostaje null, zero requestu wideo, bo brama celuje w AUTOMATYZACJE. Dla realnego usera w WebView player mixdrop gra normalnie (to caly biznes mixdropa), ale nie dalo sie tego zautomatyzowac end-to-end. To i tak scisle lepsze niz obecny stan 100% martwy. naughtymachinima (zgloszenie ef728604 "od razu fallbackuje do strony, 502/429"): ekstraktor SPRAWNY, direct mp4 bez tokenu, IP-bound do residential (403 z datacenter, telefon gra). Telemetria 64 sukcesy / 19 bledow, blad to przejsciowy Connection reset z CDN na dzialajacym URL-u. Bez re-resolve pojedynczy reset od razu spychal na WebView, ktory ladowal zdlawiona strone tube'a - stad 502/429 w zgloszeniu. Dopisany do BACKEND_RERESOLVE_ORIGINS: przy bledzie odswieza polaczenie zamiast uciekac do WebView. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
0949091f78
commit
085c0c1dd6
3 changed files with 23 additions and 6 deletions
|
|
@ -219,11 +219,13 @@ _REGISTRY: dict[str, Callable[[str], list[StreamSource] | None]] = {
|
|||
# 0dayxx + pornditt + pornhat, USUNIĘTE CAŁKOWICIE 2026-06-22 (user request): orphan
|
||||
# factories (0-0.2% canonical match), zastępujemy lepszymi źródłami. Dane skasowane.
|
||||
# CF-protected tube, curl_cffi w fetch_tube_html bypassa JA3, embed-iframe pattern.
|
||||
# perverzija, natywny HLS (2026-07-28). Player xtremestream ma w HTML tylko
|
||||
# preroll/midroll (grały w pętli, bug 40ec88cc/92e9133e), a wideo dociąga runtime:
|
||||
# xs1.php?data=<md5>&q=<480|720> zwraca GOTOWY manifest HLS z pełnymi URL-ami
|
||||
# segmentów. Zamiast WebView oddajemy m3u8 wprost.
|
||||
"perverzijacom": perverzija.extract,
|
||||
# perverzija: BYŁ natywny HLS przez xtremestream/xs1.php (2026-07-28), ale strona
|
||||
# przeszła na mixdrop (2026-08-18: 520 błędów "Input does not start with #EXTM3U",
|
||||
# zero sukcesów, bo xs1.php oddaje już HTML zamiast manifestu). Teraz embed-iframe
|
||||
# wyłuskuje mixdrop i oddaje type='hoster' → telefon resolwuje w WebView (mixdrop
|
||||
# gejtuje reCAPTCHA v3 na IP datacenter, przechodzi dopiero z residential). Natywny
|
||||
# ekstraktor `perverzija.py` zostaje w drzewie, gdyby xtremestream wrócił.
|
||||
"perverzijacom": _embed_iframe.extract,
|
||||
# Special: WebView-only (Yii2 session-bound player).
|
||||
"paradisehillcc": paradisehill.extract,
|
||||
# PornDoe, dołączony 2026-05-21 (theporndude audit). Stream URL nie inline w
|
||||
|
|
|
|||
|
|
@ -16,6 +16,14 @@ export type ChangelogEntry = {
|
|||
};
|
||||
|
||||
export const CHANGELOG: ChangelogEntry[] = [
|
||||
{
|
||||
id: '2026-08-18b',
|
||||
date: 'August 2026',
|
||||
items: [
|
||||
'naughtymachinima: a video that hit a brief server hiccup no longer drops you straight onto the site page (which was often rate-limited and showed an error). The app now grabs a fresh link and keeps playing.',
|
||||
'perverzija: playback works again. The site switched video hosts, so every link was failing; the app now opens the new host.',
|
||||
],
|
||||
},
|
||||
{
|
||||
id: '2026-08-18',
|
||||
date: 'August 2026',
|
||||
|
|
|
|||
|
|
@ -319,7 +319,14 @@ function NativeVideoPlayer({ params }: { params: RouteParams }) {
|
|||
// manifest w 0,4 s. Padał POJEDYNCZY nod CDN — kolejne wywołania resolve wracają
|
||||
// z RÓŻNYMI adresami (185.237.107.133, potem 203.188.166.163), więc ponowny resolve
|
||||
// po prostu ląduje na żywym węźle. Token ma ~2,8 h TTL, czyli wygasanie to nie to.
|
||||
const BACKEND_RERESOLVE_ORIGINS = ['tube:watchporn', 'tube:galaxyporncom'];
|
||||
// naughtymachinima dopisany 2026-08-18 (zgłoszenie ef728604 „od razu fallbackuje do
|
||||
// strony, z błędami 502 i 429"). Direct mp4 videos.naughtymachinima.com bez tokenu,
|
||||
// IP-bound do residential (403 z datacenter, telefon gra), telemetria 64 sukcesy / 19
|
||||
// błędów = 23% to przejściowy `Connection reset` z CDN na SPRAWNYM URL-u. Bez re-resolve
|
||||
// pojedynczy reset od razu spychał na WebView, który ładował zdławioną stronę tube'a
|
||||
// (stąd 502/429 w zgłoszeniu). Re-resolve otwiera świeże połączenie na tym samym URL-u,
|
||||
// co ratuje transient reset, a gate wstrzymuje WebView-fallback póki nie skończy.
|
||||
const BACKEND_RERESOLVE_ORIGINS = ['tube:watchporn', 'tube:galaxyporncom', 'tube:naughtymachinima'];
|
||||
const canBackendReresolve =
|
||||
!!sceneId && !!params.playbackId && BACKEND_RERESOLVE_ORIGINS.includes(playOrigin ?? '');
|
||||
// Seek/decode recovery (bug f6c86847: doply/playmogo „invalid NAL length” przy
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue