webstreamr-github/src/extractor/index.ts

64 lines
1.9 KiB
TypeScript

import { envGet, Fetcher } from '../utils';
import { DoodStream } from './DoodStream';
import { Dropload } from './Dropload';
import { ExternalUrl } from './ExternalUrl';
import { Extractor } from './Extractor';
import { Fastream } from './Fastream';
import { FileLions } from './FileLions';
import { FileMoon } from './FileMoon';
import { HubCloud } from './HubCloud';
import { KinoGer } from './KinoGer';
import { LuluStream } from './LuluStream';
import { Mixdrop } from './Mixdrop';
import { SaveFiles } from './SaveFiles';
import { Soaper } from './Soaper';
import { StreamEmbed } from './StreamEmbed';
import { Streamtape } from './Streamtape';
import { SuperVideo } from './SuperVideo';
import { Uqload } from './Uqload';
import { VidSrc } from './VidSrc';
import { VixSrc } from './VixSrc';
import { Voe } from './Voe';
import { YouTube } from './YouTube';
export * from './Extractor';
export * from './ExtractorRegistry';
export const createExtractors = (fetcher: Fetcher): Extractor[] => {
const disabledExtractors = envGet('DISABLED_EXTRACTORS')?.split(',') ?? [];
return [
new DoodStream(fetcher),
new Dropload(fetcher),
new Fastream(fetcher),
new FileLions(fetcher),
new FileMoon(fetcher),
new HubCloud(fetcher),
new KinoGer(fetcher),
new LuluStream(fetcher),
new Mixdrop(fetcher),
new SaveFiles(fetcher),
new Soaper(fetcher),
new StreamEmbed(fetcher),
new Streamtape(fetcher),
new SuperVideo(fetcher),
new Uqload(fetcher),
new VidSrc(fetcher, [ // https://vidsrc.domains/
'bz',
'do',
'gd',
'in',
'io',
// 'me', // redirects to .net
'mn',
'net',
'tw',
// 'vc', // 500 internal server error
'xyz',
]),
new VixSrc(fetcher),
new Voe(fetcher),
new YouTube(fetcher),
new ExternalUrl(fetcher), // fallback extractor which must come last
].filter(extractor => !disabledExtractors.includes(extractor.id));
};