From d25958749119c0d4600609197323dd8e5463d65d Mon Sep 17 00:00:00 2001 From: WebStreamr <210764791+webstreamr@users.noreply.github.com> Date: Mon, 19 Jan 2026 09:12:45 +0000 Subject: [PATCH] fix(extractor): use correct referer for rgshows, treat vidzee response as block --- src/extractor/RgShows.ts | 12 ++++++++---- src/extractor/__snapshots__/RgShows.test.ts.snap | 12 ++++++------ src/utils/__snapshots__/StreamResolver.test.ts.snap | 4 ++-- 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/extractor/RgShows.ts b/src/extractor/RgShows.ts index 900958e..5f15c03 100644 --- a/src/extractor/RgShows.ts +++ b/src/extractor/RgShows.ts @@ -1,4 +1,5 @@ -import { Context, Format, Meta, UrlResult } from '../types'; +import { BlockedError } from '../error'; +import { BlockedReason, Context, Format, Meta, UrlResult } from '../types'; import { guessHeightFromPlaylist } from '../utils'; import { Extractor } from './Extractor'; @@ -20,13 +21,16 @@ export class RgShows extends Extractor { } protected async extractInternal(ctx: Context, url: URL, meta: Meta): Promise { - const nonSubDomainUrl = new URL(url); - nonSubDomainUrl.hostname = nonSubDomainUrl.hostname.split('.').slice(-2).join('.'); - const headers = { 'Referer': `${nonSubDomainUrl.origin}/`, 'Origin': nonSubDomainUrl.origin, 'User-Agent': 'Mozilla' }; + const headers = { 'Referer': 'https://www.rgshows.ru/', 'Origin': 'https://www.rgshows.ru', 'User-Agent': 'Mozilla' }; const data = await this.fetcher.json(ctx, url, { headers }) as RgShowsApiData; const streamUrl = new URL(data.stream.url); + /* istanbul ignore if */ + if (streamUrl.host.includes('vidzee')) { + throw new BlockedError(url, BlockedReason.unknown, {}); + } + const isMp4 = streamUrl.href.includes('mp4'); const isHls = streamUrl.href.includes('m3u8') || streamUrl.href.includes('txt'); diff --git a/src/extractor/__snapshots__/RgShows.test.ts.snap b/src/extractor/__snapshots__/RgShows.test.ts.snap index 4ceea39..b8e82d1 100644 --- a/src/extractor/__snapshots__/RgShows.test.ts.snap +++ b/src/extractor/__snapshots__/RgShows.test.ts.snap @@ -10,8 +10,8 @@ exports[`RgShows handle one battle after another 1`] = ` "height": 1080, }, "requestHeaders": { - "Origin": "https://rgshows.ru", - "Referer": "https://rgshows.ru/", + "Origin": "https://www.rgshows.ru", + "Referer": "https://www.rgshows.ru/", "User-Agent": "Mozilla", }, "ttl": 10800000, @@ -29,8 +29,8 @@ exports[`RgShows handle parasite 2019 (mp4) 1`] = ` "extractorId": "rgshows", }, "requestHeaders": { - "Origin": "https://rgshows.ru", - "Referer": "https://rgshows.ru/", + "Origin": "https://www.rgshows.ru", + "Referer": "https://www.rgshows.ru/", "User-Agent": "Mozilla", }, "ttl": 10800000, @@ -49,8 +49,8 @@ exports[`RgShows handle stranger things s05e01 1`] = ` "height": 1080, }, "requestHeaders": { - "Origin": "https://rgshows.ru", - "Referer": "https://rgshows.ru/", + "Origin": "https://www.rgshows.ru", + "Referer": "https://www.rgshows.ru/", "User-Agent": "Mozilla", }, "ttl": 10800000, diff --git a/src/utils/__snapshots__/StreamResolver.test.ts.snap b/src/utils/__snapshots__/StreamResolver.test.ts.snap index 01f4932..bfa7963 100644 --- a/src/utils/__snapshots__/StreamResolver.test.ts.snap +++ b/src/utils/__snapshots__/StreamResolver.test.ts.snap @@ -551,8 +551,8 @@ exports[`resolve uses priority for sorting 1`] = ` "notWebReady": true, "proxyHeaders": { "request": { - "Origin": "https://rgshows.ru", - "Referer": "https://rgshows.ru/", + "Origin": "https://www.rgshows.ru", + "Referer": "https://www.rgshows.ru/", "User-Agent": "Mozilla", }, },