From b8c5c1a4f39579c8bd95e35783e58b3ba6e24a35 Mon Sep 17 00:00:00 2001 From: WebStreamr <210764791+webstreamr@users.noreply.github.com> Date: Tue, 7 Oct 2025 14:44:25 +0000 Subject: [PATCH] perf(extractor): do not guess size from mp4 for DoodStream --- src/extractor/DoodStream.test.ts | 4 -- src/extractor/DoodStream.ts | 9 +++-- ...g3301phkef2s4swo8bssgandexpiry639837296000 | 1 - .../DoodStream/http:dood.toddfx8me4un4ul | 1 + .../DoodStream/http:dood.todsk1m9eumzyjj | 1 + .../DoodStream/http:dood.todwfpwtsgyr1xi | 1 + ...p:dood.toe1cfcevn6dg8shrfvht22odxw2lty18hr | 1 - ...9d265f45cdee4a6230fbsg3301phkef2s4swo8bssg | 1 - .../__snapshots__/DoodStream.test.ts.snap | 22 +---------- ...bebipnnhusa4xnyea1er4andexpiry639837296000 | 1 - ...v2d8uhbrj2ky54d573ujkandexpiry639837296000 | 1 - .../StreamResolver/http:dood.tod1srct94x5yfz | 1 + .../StreamResolver/http:dood.tod37o04m33q3g5 | 1 + .../StreamResolver/http:dood.todsk1m9eumzyjj | 1 + .../StreamResolver/http:dood.toe1srct94x5yfz | 2 +- .../StreamResolver/http:dood.toe37o04m33q3g5 | 2 +- .../StreamResolver/http:dood.toesk1m9eumzyjj | 2 +- ...057b7566c8d4366d1caej8q7ajug1gt0nd4lbs8zgd | 1 + ...f76d92c97ccad515e7uebebipnnhusa4xnyea1er4} | 2 +- ...81179cf3966d1ef38daw2v2d8uhbrj2ky54d573ujk | 1 + ...707c4916d3167c5934aw2v2d8uhbrj2ky54d573ujk | 1 - .../__snapshots__/StreamResolver.test.ts.snap | 38 ++++++++++++++----- src/utils/size.ts | 8 +--- 23 files changed, 49 insertions(+), 54 deletions(-) delete mode 100644 src/extractor/__fixtures__/DoodStream/head-https:ijs155l.cloudatacdn.comu5kj2rz5qtdlsdgge4hrgj2flz5cjodea6auatveaphxogr2vvukxfzmwzvaegprvdjvpr~mocked-random-stringtokenfbsg3301phkef2s4swo8bssgandexpiry639837296000 create mode 100644 src/extractor/__fixtures__/DoodStream/http:dood.toddfx8me4un4ul create mode 100644 src/extractor/__fixtures__/DoodStream/http:dood.todsk1m9eumzyjj create mode 100644 src/extractor/__fixtures__/DoodStream/http:dood.todwfpwtsgyr1xi delete mode 100644 src/extractor/__fixtures__/DoodStream/http:dood.toe1cfcevn6dg8shrfvht22odxw2lty18hr delete mode 100644 src/extractor/__fixtures__/DoodStream/http:dood.topass_md5143414074-50-99-1749845417-3a1e5c6ad3586e9d265f45cdee4a6230fbsg3301phkef2s4swo8bssg delete mode 100644 src/utils/__fixtures__/StreamResolver/head-https:aa360cc.cloudatacdn.comu5kjv4jxytd3sdgge5uogji5dg4huat2pxrm2qibdbm5rlyusvlvslr3u3tabibyo6w0dm~mocked-random-stringtoken7uebebipnnhusa4xnyea1er4andexpiry639837296000 delete mode 100644 src/utils/__fixtures__/StreamResolver/head-https:kk892as.cloudatacdn.comu5kj7j7s27d3sdgge5woezkbi4pu672wktq3aqujw47rbx4declm2mk2k2gq4msi5kvncy~mocked-random-stringtokenaw2v2d8uhbrj2ky54d573ujkandexpiry639837296000 create mode 100644 src/utils/__fixtures__/StreamResolver/http:dood.tod1srct94x5yfz create mode 100644 src/utils/__fixtures__/StreamResolver/http:dood.tod37o04m33q3g5 create mode 100644 src/utils/__fixtures__/StreamResolver/http:dood.todsk1m9eumzyjj create mode 100644 src/utils/__fixtures__/StreamResolver/http:dood.topass_md5158055412-45-38-1759848086-3cf7d759fe3ad4057b7566c8d4366d1caej8q7ajug1gt0nd4lbs8zgd rename src/utils/__fixtures__/StreamResolver/{http:dood.topass_md5164387212-50-99-1749846846-9ec2c5635ea8d8af7dfe210069352e607uebebipnnhusa4xnyea1er4 => http:dood.topass_md5164387212-45-38-1759848085-32ec32c6c5a194bf76d92c97ccad515e7uebebipnnhusa4xnyea1er4} (61%) create mode 100644 src/utils/__fixtures__/StreamResolver/http:dood.topass_md5165649626-45-38-1759848085-df2d3f389663cb81179cf3966d1ef38daw2v2d8uhbrj2ky54d573ujk delete mode 100644 src/utils/__fixtures__/StreamResolver/http:dood.topass_md5165649626-50-99-1749846846-5d1a6e7e049ede707c4916d3167c5934aw2v2d8uhbrj2ky54d573ujk diff --git a/src/extractor/DoodStream.test.ts b/src/extractor/DoodStream.test.ts index 32e04e2..d896635 100644 --- a/src/extractor/DoodStream.test.ts +++ b/src/extractor/DoodStream.test.ts @@ -14,10 +14,6 @@ describe('DoodStream', () => { expect(await extractorRegistry.handle(ctx, new URL('http://dood.to/e/sk1m9eumzyjj'))).toMatchSnapshot(); }); - test('doodster', async () => { - expect(await extractorRegistry.handle(ctx, new URL('https://dooodster.com/e/1cfcevn6dg8shrfvht22odxw2lty18hr'))).toMatchSnapshot(); - }); - test('missing pass_md5 -> not found', async () => { expect(await extractorRegistry.handle(ctx, new URL('https://dood.to/e/gy8l8mb2i311'))).toMatchSnapshot(); }); diff --git a/src/extractor/DoodStream.ts b/src/extractor/DoodStream.ts index de374d2..ee0a2ee 100644 --- a/src/extractor/DoodStream.ts +++ b/src/extractor/DoodStream.ts @@ -1,8 +1,8 @@ +import bytes from 'bytes'; import * as cheerio from 'cheerio'; import randomstring from 'randomstring'; import { NotFoundError } from '../error'; import { Context, Format, Meta, UrlResult } from '../types'; -import { guessSizeFromMp4 } from '../utils/size'; import { Extractor } from './Extractor'; export class DoodStream extends Extractor { @@ -40,13 +40,14 @@ export class DoodStream extends Extractor { const $ = cheerio.load(html); const title = $('title').text().trim().replace(/ - DoodStream$/, '').trim(); + const downloadHtml = await this.fetcher.text(ctx, new URL(url.href.replace('/e/', '/d/'))); + const sizeMatch = downloadHtml.match(/([\d.]+ ?[GM]B)/); + let mp4Url: URL; - let bytes: number | undefined; if (baseUrl.includes('cloudflarestorage')) { mp4Url = new URL(baseUrl); } else { mp4Url = new URL(`${baseUrl}${randomstring.generate(10)}?token=${token}&expiry=${Date.now()}`); - bytes = await guessSizeFromMp4(ctx, this.fetcher, mp4Url, { headers: { Referer: url.href } }); } return [ @@ -59,7 +60,7 @@ export class DoodStream extends Extractor { meta: { ...meta, title, - ...(bytes && { bytes }), + ...(sizeMatch && { bytes: bytes.parse(sizeMatch[1] as string) as number }), }, requestHeaders: { Referer: url.origin, diff --git a/src/extractor/__fixtures__/DoodStream/head-https:ijs155l.cloudatacdn.comu5kj2rz5qtdlsdgge4hrgj2flz5cjodea6auatveaphxogr2vvukxfzmwzvaegprvdjvpr~mocked-random-stringtokenfbsg3301phkef2s4swo8bssgandexpiry639837296000 b/src/extractor/__fixtures__/DoodStream/head-https:ijs155l.cloudatacdn.comu5kj2rz5qtdlsdgge4hrgj2flz5cjodea6auatveaphxogr2vvukxfzmwzvaegprvdjvpr~mocked-random-stringtokenfbsg3301phkef2s4swo8bssgandexpiry639837296000 deleted file mode 100644 index 9e26dfe..0000000 --- a/src/extractor/__fixtures__/DoodStream/head-https:ijs155l.cloudatacdn.comu5kj2rz5qtdlsdgge4hrgj2flz5cjodea6auatveaphxogr2vvukxfzmwzvaegprvdjvpr~mocked-random-stringtokenfbsg3301phkef2s4swo8bssgandexpiry639837296000 +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/src/extractor/__fixtures__/DoodStream/http:dood.toddfx8me4un4ul b/src/extractor/__fixtures__/DoodStream/http:dood.toddfx8me4un4ul new file mode 100644 index 0000000..2fa18a2 --- /dev/null +++ b/src/extractor/__fixtures__/DoodStream/http:dood.toddfx8me4un4ul @@ -0,0 +1 @@ + Black Mirror S04E02 FRENCH 720p WEB x264-RiPiT - DoodStream

Not Found

video you are looking for is not found.

Black Mirror S04E02 FRENCH 720p WEB x264-RiPiT

52:19
523.7 MB
Feb 20, 2024
\ No newline at end of file diff --git a/src/extractor/__fixtures__/DoodStream/http:dood.todsk1m9eumzyjj b/src/extractor/__fixtures__/DoodStream/http:dood.todsk1m9eumzyjj new file mode 100644 index 0000000..8f87f18 --- /dev/null +++ b/src/extractor/__fixtures__/DoodStream/http:dood.todsk1m9eumzyjj @@ -0,0 +1 @@ + des-teufels-bad-2024 - DoodStream

Not Found

video you are looking for is not found.

des-teufels-bad-2024

02:00:59
1.3 GB
Jun 27, 2024
Please wait 5 seconds
Download Now
High quality
\ No newline at end of file diff --git a/src/extractor/__fixtures__/DoodStream/http:dood.todwfpwtsgyr1xi b/src/extractor/__fixtures__/DoodStream/http:dood.todwfpwtsgyr1xi new file mode 100644 index 0000000..98ed128 --- /dev/null +++ b/src/extractor/__fixtures__/DoodStream/http:dood.todwfpwtsgyr1xi @@ -0,0 +1 @@ + Video not found | DoodStream

Not Found

video you are looking for is not found.

\ No newline at end of file diff --git a/src/extractor/__fixtures__/DoodStream/http:dood.toe1cfcevn6dg8shrfvht22odxw2lty18hr b/src/extractor/__fixtures__/DoodStream/http:dood.toe1cfcevn6dg8shrfvht22odxw2lty18hr deleted file mode 100644 index 3aff97a..0000000 --- a/src/extractor/__fixtures__/DoodStream/http:dood.toe1cfcevn6dg8shrfvht22odxw2lty18hr +++ /dev/null @@ -1 +0,0 @@ - Brokeback Mountain 2005 - DoodStream

Not Found

video you are looking for is not found.

\ No newline at end of file diff --git a/src/extractor/__fixtures__/DoodStream/http:dood.topass_md5143414074-50-99-1749845417-3a1e5c6ad3586e9d265f45cdee4a6230fbsg3301phkef2s4swo8bssg b/src/extractor/__fixtures__/DoodStream/http:dood.topass_md5143414074-50-99-1749845417-3a1e5c6ad3586e9d265f45cdee4a6230fbsg3301phkef2s4swo8bssg deleted file mode 100644 index b0ae3a2..0000000 --- a/src/extractor/__fixtures__/DoodStream/http:dood.topass_md5143414074-50-99-1749845417-3a1e5c6ad3586e9d265f45cdee4a6230fbsg3301phkef2s4swo8bssg +++ /dev/null @@ -1 +0,0 @@ -https://ijs155l.cloudatacdn.com/u5kj2rz5qtdlsdgge4hrgj2flz5cjodea6auatveaphxogr2vvukxfzmwzva/egprvdjvpr~ \ No newline at end of file diff --git a/src/extractor/__snapshots__/DoodStream.test.ts.snap b/src/extractor/__snapshots__/DoodStream.test.ts.snap index b8c1099..810514d 100644 --- a/src/extractor/__snapshots__/DoodStream.test.ts.snap +++ b/src/extractor/__snapshots__/DoodStream.test.ts.snap @@ -6,6 +6,7 @@ exports[`DoodStream can guess height from title 1`] = ` "format": "mp4", "label": "DoodStream", "meta": { + "bytes": 549139251, "countryCodes": [], "title": "Black Mirror S04E02 FRENCH 720p WEB x264-RiPiT", }, @@ -44,7 +45,7 @@ exports[`DoodStream dood.to 1`] = ` "format": "mp4", "label": "DoodStream", "meta": { - "bytes": 791702409, + "bytes": 1395864371, "countryCodes": [], "title": "des-teufels-bad-2024", }, @@ -58,23 +59,4 @@ exports[`DoodStream dood.to 1`] = ` ] `; -exports[`DoodStream doodster 1`] = ` -[ - { - "format": "mp4", - "label": "DoodStream", - "meta": { - "countryCodes": [], - "title": "Brokeback Mountain 2005", - }, - "requestHeaders": { - "Referer": "http://dood.to", - }, - "sourceId": "doodstream_", - "ttl": 21600000, - "url": "https://ijs155l.cloudatacdn.com/u5kj2rz5qtdlsdgge4hrgj2flz5cjodea6auatveaphxogr2vvukxfzmwzva/egprvdjvpr~mocked-random-string?token=fbsg3301phkef2s4swo8bssg&expiry=639837296000", - }, -] -`; - exports[`DoodStream missing pass_md5 -> not found 1`] = `[]`; diff --git a/src/utils/__fixtures__/StreamResolver/head-https:aa360cc.cloudatacdn.comu5kjv4jxytd3sdgge5uogji5dg4huat2pxrm2qibdbm5rlyusvlvslr3u3tabibyo6w0dm~mocked-random-stringtoken7uebebipnnhusa4xnyea1er4andexpiry639837296000 b/src/utils/__fixtures__/StreamResolver/head-https:aa360cc.cloudatacdn.comu5kjv4jxytd3sdgge5uogji5dg4huat2pxrm2qibdbm5rlyusvlvslr3u3tabibyo6w0dm~mocked-random-stringtoken7uebebipnnhusa4xnyea1er4andexpiry639837296000 deleted file mode 100644 index 00bf5ee..0000000 --- a/src/utils/__fixtures__/StreamResolver/head-https:aa360cc.cloudatacdn.comu5kjv4jxytd3sdgge5uogji5dg4huat2pxrm2qibdbm5rlyusvlvslr3u3tabibyo6w0dm~mocked-random-stringtoken7uebebipnnhusa4xnyea1er4andexpiry639837296000 +++ /dev/null @@ -1 +0,0 @@ -{"server":"nginx","date":"Sun, 08 Jun 2025 19:20:59 GMT","content-type":"video/mp4","content-length":791702409,"last-modified":"Wed, 03 Apr 2024 09:53:31 GMT","connection":"keep-alive","etag":"660d271b-2f306b89","access-control-allow-origin":"*","accept-ranges":"bytes"} diff --git a/src/utils/__fixtures__/StreamResolver/head-https:kk892as.cloudatacdn.comu5kj7j7s27d3sdgge5woezkbi4pu672wktq3aqujw47rbx4declm2mk2k2gq4msi5kvncy~mocked-random-stringtokenaw2v2d8uhbrj2ky54d573ujkandexpiry639837296000 b/src/utils/__fixtures__/StreamResolver/head-https:kk892as.cloudatacdn.comu5kj7j7s27d3sdgge5woezkbi4pu672wktq3aqujw47rbx4declm2mk2k2gq4msi5kvncy~mocked-random-stringtokenaw2v2d8uhbrj2ky54d573ujkandexpiry639837296000 deleted file mode 100644 index 9e26dfe..0000000 --- a/src/utils/__fixtures__/StreamResolver/head-https:kk892as.cloudatacdn.comu5kj7j7s27d3sdgge5woezkbi4pu672wktq3aqujw47rbx4declm2mk2k2gq4msi5kvncy~mocked-random-stringtokenaw2v2d8uhbrj2ky54d573ujkandexpiry639837296000 +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/src/utils/__fixtures__/StreamResolver/http:dood.tod1srct94x5yfz b/src/utils/__fixtures__/StreamResolver/http:dood.tod1srct94x5yfz new file mode 100644 index 0000000..72bdc9a --- /dev/null +++ b/src/utils/__fixtures__/StreamResolver/http:dood.tod1srct94x5yfz @@ -0,0 +1 @@ + Solaris 1972 PROPER 1080p BluRay x264-SADPANDA - ENG SUBS - tt0069293 - DoodStream

Not Found

video you are looking for is not found.

Solaris 1972 PROPER 1080p BluRay x264-SADPANDA - ENG SUBS - tt0069293

02:46:54
1.8 GB
May 6, 2024
Please wait 5 seconds
Download Now
High quality
\ No newline at end of file diff --git a/src/utils/__fixtures__/StreamResolver/http:dood.tod37o04m33q3g5 b/src/utils/__fixtures__/StreamResolver/http:dood.tod37o04m33q3g5 new file mode 100644 index 0000000..ed99ef4 --- /dev/null +++ b/src/utils/__fixtures__/StreamResolver/http:dood.tod37o04m33q3g5 @@ -0,0 +1 @@ + the-devils-bath-2024-sd-sub-ita - DoodStream

Not Found

video you are looking for is not found.

the-devils-bath-2024-sd-sub-ita

02:00:59
1.1 GB
Jul 6, 2024
Please wait 5 seconds
Download Now
High quality
\ No newline at end of file diff --git a/src/utils/__fixtures__/StreamResolver/http:dood.todsk1m9eumzyjj b/src/utils/__fixtures__/StreamResolver/http:dood.todsk1m9eumzyjj new file mode 100644 index 0000000..c35356e --- /dev/null +++ b/src/utils/__fixtures__/StreamResolver/http:dood.todsk1m9eumzyjj @@ -0,0 +1 @@ + des-teufels-bad-2024 - DoodStream

Not Found

video you are looking for is not found.

des-teufels-bad-2024

02:00:59
1.3 GB
Jun 27, 2024
Please wait 5 seconds
Download Now
High quality
\ No newline at end of file diff --git a/src/utils/__fixtures__/StreamResolver/http:dood.toe1srct94x5yfz b/src/utils/__fixtures__/StreamResolver/http:dood.toe1srct94x5yfz index eea4e4e..b2f09df 100644 --- a/src/utils/__fixtures__/StreamResolver/http:dood.toe1srct94x5yfz +++ b/src/utils/__fixtures__/StreamResolver/http:dood.toe1srct94x5yfz @@ -1 +1 @@ - Solaris 1972 PROPER 1080p BluRay x264-SADPANDA - ENG SUBS - tt0069293 - DoodStream.com
\ No newline at end of file + Solaris 1972 PROPER 1080p BluRay x264-SADPANDA - ENG SUBS - tt0069293 - DoodStream

Not Found

video you are looking for is not found.

\ No newline at end of file diff --git a/src/utils/__fixtures__/StreamResolver/http:dood.toe37o04m33q3g5 b/src/utils/__fixtures__/StreamResolver/http:dood.toe37o04m33q3g5 index 628f877..4b25bc9 100644 --- a/src/utils/__fixtures__/StreamResolver/http:dood.toe37o04m33q3g5 +++ b/src/utils/__fixtures__/StreamResolver/http:dood.toe37o04m33q3g5 @@ -1 +1 @@ - the-devils-bath-2024-sd-sub-ita - DoodStream

Not Found

video you are looking for is not found.

\ No newline at end of file + the-devils-bath-2024-sd-sub-ita - DoodStream

Not Found

video you are looking for is not found.

\ No newline at end of file diff --git a/src/utils/__fixtures__/StreamResolver/http:dood.toesk1m9eumzyjj b/src/utils/__fixtures__/StreamResolver/http:dood.toesk1m9eumzyjj index 63eedea..b80b04b 100644 --- a/src/utils/__fixtures__/StreamResolver/http:dood.toesk1m9eumzyjj +++ b/src/utils/__fixtures__/StreamResolver/http:dood.toesk1m9eumzyjj @@ -1 +1 @@ - des-teufels-bad-2024 - DoodStream

Not Found

video you are looking for is not found.

\ No newline at end of file + des-teufels-bad-2024 - DoodStream

Not Found

video you are looking for is not found.

< \ No newline at end of file diff --git a/src/utils/__fixtures__/StreamResolver/http:dood.topass_md5158055412-45-38-1759848086-3cf7d759fe3ad4057b7566c8d4366d1caej8q7ajug1gt0nd4lbs8zgd b/src/utils/__fixtures__/StreamResolver/http:dood.topass_md5158055412-45-38-1759848086-3cf7d759fe3ad4057b7566c8d4366d1caej8q7ajug1gt0nd4lbs8zgd new file mode 100644 index 0000000..578be36 --- /dev/null +++ b/src/utils/__fixtures__/StreamResolver/http:dood.topass_md5158055412-45-38-1759848086-3cf7d759fe3ad4057b7566c8d4366d1caej8q7ajug1gt0nd4lbs8zgd @@ -0,0 +1 @@ +https://do365ki.cloudatacdn.com/u5kjzcovmpd3sdgge7tc4jacdzaikwer6ff4qd463b6qj6lodlgpnsbkffvq/xy59ygfkku~ \ No newline at end of file diff --git a/src/utils/__fixtures__/StreamResolver/http:dood.topass_md5164387212-50-99-1749846846-9ec2c5635ea8d8af7dfe210069352e607uebebipnnhusa4xnyea1er4 b/src/utils/__fixtures__/StreamResolver/http:dood.topass_md5164387212-45-38-1759848085-32ec32c6c5a194bf76d92c97ccad515e7uebebipnnhusa4xnyea1er4 similarity index 61% rename from src/utils/__fixtures__/StreamResolver/http:dood.topass_md5164387212-50-99-1749846846-9ec2c5635ea8d8af7dfe210069352e607uebebipnnhusa4xnyea1er4 rename to src/utils/__fixtures__/StreamResolver/http:dood.topass_md5164387212-45-38-1759848085-32ec32c6c5a194bf76d92c97ccad515e7uebebipnnhusa4xnyea1er4 index 88eb962..088c406 100644 --- a/src/utils/__fixtures__/StreamResolver/http:dood.topass_md5164387212-50-99-1749846846-9ec2c5635ea8d8af7dfe210069352e607uebebipnnhusa4xnyea1er4 +++ b/src/utils/__fixtures__/StreamResolver/http:dood.topass_md5164387212-45-38-1759848085-32ec32c6c5a194bf76d92c97ccad515e7uebebipnnhusa4xnyea1er4 @@ -1 +1 @@ -https://aa360cc.cloudatacdn.com/u5kjv4jxytd3sdgge5uogji5dg4huat2pxrm2qibdbm5rlyusvlvslr3u3ta/bibyo6w0dm~ \ No newline at end of file +https://aa360cc.cloudatacdn.com/u5kjv4jxytd3sdgge5uogji5dg4huat2pxrm2qibdbm5rmcr6fv2tcniineq/6aqs1w2xla~ \ No newline at end of file diff --git a/src/utils/__fixtures__/StreamResolver/http:dood.topass_md5165649626-45-38-1759848085-df2d3f389663cb81179cf3966d1ef38daw2v2d8uhbrj2ky54d573ujk b/src/utils/__fixtures__/StreamResolver/http:dood.topass_md5165649626-45-38-1759848085-df2d3f389663cb81179cf3966d1ef38daw2v2d8uhbrj2ky54d573ujk new file mode 100644 index 0000000..3eb4288 --- /dev/null +++ b/src/utils/__fixtures__/StreamResolver/http:dood.topass_md5165649626-45-38-1759848085-df2d3f389663cb81179cf3966d1ef38daw2v2d8uhbrj2ky54d573ujk @@ -0,0 +1 @@ +https://et1095c.cloudatacdn.com/u5kjxj7s27d3sdgge5woezkbi7milmjrckehcrwuw63gsvytfwxlfmjzvu3a/jli1t787d1~ \ No newline at end of file diff --git a/src/utils/__fixtures__/StreamResolver/http:dood.topass_md5165649626-50-99-1749846846-5d1a6e7e049ede707c4916d3167c5934aw2v2d8uhbrj2ky54d573ujk b/src/utils/__fixtures__/StreamResolver/http:dood.topass_md5165649626-50-99-1749846846-5d1a6e7e049ede707c4916d3167c5934aw2v2d8uhbrj2ky54d573ujk deleted file mode 100644 index 2e72617..0000000 --- a/src/utils/__fixtures__/StreamResolver/http:dood.topass_md5165649626-50-99-1749846846-5d1a6e7e049ede707c4916d3167c5934aw2v2d8uhbrj2ky54d573ujk +++ /dev/null @@ -1 +0,0 @@ -https://kk892as.cloudatacdn.com/u5kj7j7s27d3sdgge5woezkbi4pu672wktq3aqujw47rbx4declm2mk2k2gq/4msi5kvncy~ \ No newline at end of file diff --git a/src/utils/__snapshots__/StreamResolver.test.ts.snap b/src/utils/__snapshots__/StreamResolver.test.ts.snap index a9b252c..23db400 100644 --- a/src/utils/__snapshots__/StreamResolver.test.ts.snap +++ b/src/utils/__snapshots__/StreamResolver.test.ts.snap @@ -237,12 +237,12 @@ exports[`resolve returns sorted results 1`] = ` "Referer": "http://dood.to", }, }, - "videoSize": 791702409, + "videoSize": 1395864371, }, "name": "WebStreamr 🇩🇪", "title": "des-teufels-bad-2024 -💾 755.03 MB 🔗 DoodStream from MeineCloud", - "url": "https://aa360cc.cloudatacdn.com/u5kjv4jxytd3sdgge5uogji5dg4huat2pxrm2qibdbm5rlyusvlvslr3u3ta/bibyo6w0dm~mocked-random-string?token=7uebebipnnhusa4xnyea1er4&expiry=639837296000", +💾 1.3 GB 🔗 DoodStream from MeineCloud", + "url": "https://aa360cc.cloudatacdn.com/u5kjv4jxytd3sdgge5uogji5dg4huat2pxrm2qibdbm5rmcr6fv2tcniineq/6aqs1w2xla~mocked-random-string?token=7uebebipnnhusa4xnyea1er4&expiry=639837296000", }, { "behaviorHints": { @@ -253,11 +253,12 @@ exports[`resolve returns sorted results 1`] = ` "Referer": "http://dood.to", }, }, + "videoSize": 1181116006, }, "name": "WebStreamr 🇮🇹", "title": "the-devils-bath-2024-sd-sub-ita -🔗 DoodStream from MostraGuarda", - "url": "https://kk892as.cloudatacdn.com/u5kj7j7s27d3sdgge5woezkbi4pu672wktq3aqujw47rbx4declm2mk2k2gq/4msi5kvncy~mocked-random-string?token=aw2v2d8uhbrj2ky54d573ujk&expiry=639837296000", +💾 1.1 GB 🔗 DoodStream from MostraGuarda", + "url": "https://et1095c.cloudatacdn.com/u5kjxj7s27d3sdgge5woezkbi7milmjrckehcrwuw63gsvytfwxlfmjzvu3a/jli1t787d1~mocked-random-string?token=aw2v2d8uhbrj2ky54d573ujk&expiry=639837296000", }, ] `; @@ -317,12 +318,12 @@ exports[`resolve returns sorted results 2`] = ` "Referer": "http://dood.to", }, }, - "videoSize": 791702409, + "videoSize": 1395864371, }, "name": "WebStreamr 🇩🇪", "title": "des-teufels-bad-2024 -💾 755.03 MB 🔗 DoodStream from MeineCloud", - "url": "https://aa360cc.cloudatacdn.com/u5kjv4jxytd3sdgge5uogji5dg4huat2pxrm2qibdbm5rlyusvlvslr3u3ta/bibyo6w0dm~mocked-random-string?token=7uebebipnnhusa4xnyea1er4&expiry=639837296000", +💾 1.3 GB 🔗 DoodStream from MeineCloud", + "url": "https://aa360cc.cloudatacdn.com/u5kjv4jxytd3sdgge5uogji5dg4huat2pxrm2qibdbm5rmcr6fv2tcniineq/6aqs1w2xla~mocked-random-string?token=7uebebipnnhusa4xnyea1er4&expiry=639837296000", }, { "behaviorHints": { @@ -333,11 +334,12 @@ exports[`resolve returns sorted results 2`] = ` "Referer": "http://dood.to", }, }, + "videoSize": 1181116006, }, "name": "WebStreamr 🇮🇹", "title": "the-devils-bath-2024-sd-sub-ita -🔗 DoodStream from MostraGuarda", - "url": "https://kk892as.cloudatacdn.com/u5kj7j7s27d3sdgge5woezkbi4pu672wktq3aqujw47rbx4declm2mk2k2gq/4msi5kvncy~mocked-random-string?token=aw2v2d8uhbrj2ky54d573ujk&expiry=639837296000", +💾 1.1 GB 🔗 DoodStream from MostraGuarda", + "url": "https://et1095c.cloudatacdn.com/u5kjxj7s27d3sdgge5woezkbi7milmjrckehcrwuw63gsvytfwxlfmjzvu3a/jli1t787d1~mocked-random-string?token=aw2v2d8uhbrj2ky54d573ujk&expiry=639837296000", }, { "behaviorHints": { @@ -381,6 +383,22 @@ exports[`resolve returns source errors as stream 2`] = ` exports[`resolve returns ytId instead of url for YouTube video 1`] = ` [ + { + "behaviorHints": { + "bingeGroup": "webstreamr-doodstream_en", + "notWebReady": true, + "proxyHeaders": { + "request": { + "Referer": "http://dood.to", + }, + }, + "videoSize": 1932735283, + }, + "name": "WebStreamr 🇺🇸", + "title": "Solaris 1972 PROPER 1080p BluRay x264-SADPANDA - ENG SUBS - tt0069293 +💾 1.8 GB 🔗 DoodStream from PrimeWire", + "url": "https://do365ki.cloudatacdn.com/u5kjzcovmpd3sdgge7tc4jacdzaikwer6ff4qd463b6qj6lodlgpnsbkffvq/xy59ygfkku~mocked-random-string?token=aej8q7ajug1gt0nd4lbs8zgd&expiry=639837296000", + }, { "behaviorHints": { "bingeGroup": "webstreamr-youtube_en", diff --git a/src/utils/size.ts b/src/utils/size.ts index 877da92..aec533e 100644 --- a/src/utils/size.ts +++ b/src/utils/size.ts @@ -1,12 +1,8 @@ import { Context } from '../types'; import { CustomRequestInit, Fetcher } from './Fetcher'; -export const guessSizeFromMp4 = async (ctx: Context, fetcher: Fetcher, url: URL, init?: CustomRequestInit): Promise => { +export const guessSizeFromMp4 = async (ctx: Context, fetcher: Fetcher, url: URL, init?: CustomRequestInit): Promise => { const mp4Head = await fetcher.head(ctx, url, init); - if (mp4Head['content-length']) { - return parseInt(mp4Head['content-length'] as string); - } - - return undefined; + return parseInt(mp4Head['content-length'] as string); };