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
\ 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.
Resume playing?
Welcome back! You left off at 0:0:0. Would you like to resume watching where you left off?
\ 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
\ 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
\ 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