fix(mobile): WebView page fallback for native-mp4 tubes that fail in ExoPlayer
Two user reports (watchporn scenes 5716e1c5 + another): "resolver fails but the scene plays in the diagnostic browser". Verified server-side the watchporn extractor is reliable (8/8) and returns 2 clean links; the zload remote_control.php CDN URL is a valid range-supporting mp4 (206) that plays cross-IP and via the /proxy fallback (206). So the failure is purely the mobile native player choking on that URL, and native-mp4-only tube sources carried NO fallbackEmbedUrl, so there was nothing left after native+proxy. Now: when a resolved source has direct links but no embed, use the tube page_url as the WebView fallback. Native + proxy are still tried first; only if both fail does it load the site page in the WebView player (phone-side, residential IP, no VPS bandwidth) which is exactly what the diagnostic browser does and the users confirmed plays. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
0c18472a15
commit
3eb57dd61d
2 changed files with 14 additions and 2 deletions
|
|
@ -16,6 +16,13 @@ export type ChangelogEntry = {
|
||||||
};
|
};
|
||||||
|
|
||||||
export const CHANGELOG: ChangelogEntry[] = [
|
export const CHANGELOG: ChangelogEntry[] = [
|
||||||
|
{
|
||||||
|
id: '2026-07-05',
|
||||||
|
date: 'July 2026',
|
||||||
|
items: [
|
||||||
|
'If a video source cannot play in the built-in player, the app now falls back to the site page so it still plays (helps watchporn and similar).',
|
||||||
|
],
|
||||||
|
},
|
||||||
{
|
{
|
||||||
id: '2026-07-03',
|
id: '2026-07-03',
|
||||||
date: 'July 2026',
|
date: 'July 2026',
|
||||||
|
|
|
||||||
|
|
@ -688,8 +688,13 @@ function PlaybackButton({
|
||||||
|
|
||||||
// Fallback embed do Playera — gdy ExoPlayer dostanie 403 (IP-bound CDN), apka
|
// Fallback embed do Playera — gdy ExoPlayer dostanie 403 (IP-bound CDN), apka
|
||||||
// przełączy się na WebView z tym embed URL'em. Bierzemy pierwszy embed jaki
|
// przełączy się na WebView z tym embed URL'em. Bierzemy pierwszy embed jaki
|
||||||
// jest, niezależnie od kolejności w `links`.
|
// jest, niezależnie od kolejności w `links`. Gdy źródło jest natywne-mp4 bez embedu
|
||||||
const fallbackEmbedUrl = embedLinks[0]?.embed_url || res.best?.embed_url || undefined;
|
// (KVS: watchporn/porn00 itd.) i mimo to native+proxy padną na telefonie (report
|
||||||
|
// watchporn: „resolver nie dziala, a scena dziala w diagnostyce"), spadamy na
|
||||||
|
// page_url w WebView — strona tube gra po stronie telefonu (residential IP, 0 VPS
|
||||||
|
// bandwidth), tak jak diagnostyczny browser. Native/proxy dalej sa probowane pierwsze.
|
||||||
|
const fallbackEmbedUrl =
|
||||||
|
embedLinks[0]?.embed_url || res.best?.embed_url || source.page_url || undefined;
|
||||||
|
|
||||||
const autoPick = pickAuto(directLinks);
|
const autoPick = pickAuto(directLinks);
|
||||||
if (autoPick) {
|
if (autoPick) {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue