No description
Find a file
WebStreamr a90d7b1cad
fix(extractor): use full cached meta to avoid invalid cache states
The lazy extraction does not specify meta the same way the stream
resolver does. this leads to partial meta being inserted in both the
short-term and long-term cache and consecutive requests have then
missing meta info like e.g. countries
2026-01-23 22:12:50 +00:00
.github chore: add issue templates 2026-01-17 11:38:19 +01:00
src fix(extractor): use full cached meta to avoid invalid cache states 2026-01-23 22:12:50 +00:00
.editorconfig chore: initial commit 2025-05-07 21:09:18 +00:00
.gitattributes refactor: DI for handlers, extractors and fetcher 2025-05-11 19:11:14 +00:00
.gitignore chore: initial commit 2025-05-07 21:09:18 +00:00
.release-please-manifest.json chore(release): release v0.65.8 (#675) 2026-01-20 21:13:14 +00:00
CHANGELOG.md chore(release): release v0.65.8 (#675) 2026-01-20 21:13:14 +00:00
Dockerfile chore: switch to non-alpine based node image 2025-11-29 16:14:20 +00:00
eslint.config.mjs refactor: more consistent import style 2025-07-02 09:28:10 +00:00
jest.config.ts refactor: create dispatcher per request 2025-09-12 07:30:27 +00:00
jest.setup.ts feat: introduce lazy extract for all non-HLS streams 2026-01-12 19:48:59 +00:00
LICENSE.txt chore: initial commit 2025-05-07 21:09:18 +00:00
package-lock.json chore(deps): update dependency cheerio to v1.2.0 (#683) 2026-01-23 19:02:36 +00:00
package.json chore(release): release v0.65.8 (#675) 2026-01-20 21:13:14 +00:00
README.md docs: add tmp mount for persistent cache to Docker run example 2026-01-16 10:09:29 +00:00
release-please-config.json fix: keep replacing the manifest version on release 2025-05-09 20:08:07 +00:00
renovate.json chore(renovate): limit updates of often-releasing packages a bit 2025-05-12 07:00:17 +00:00
tsconfig.dev.json chore: use tsconfig base for node 22 2025-06-03 14:54:05 +00:00
tsconfig.json chore(deps): replace dependency @tsconfig/node22 with @tsconfig/node24 (#581) 2025-12-22 10:21:02 +01:00

WebStreamr

Tests GitHub release GitHub License

Stremio add-on which provides HTTP URLs from streaming websites.

Public instance

A public instance is available at https://webstreamr.hayd.uk. Hosting infrastructure for this instance is donated by ElfHosted, and independently maintained by Hayduk.

MediaFlow Proxy

MediaFlow Proxy can be added when configuration the add-on to gain access to a couple of more file hosters. It depends highly on the language / source used if that unlocks more streams or not.

MediaFlow proxy is needed because some hosters ip-lock streams and the add-on does not run on the same device that will stream the video.

The following hosters can be used only with MediaFlow Proxy:

  • Fastream
  • FileLions
  • FileMoon
  • LuluStream
  • Mixdrop
  • Streamtape
  • VOE

MediaFlow proxy can either be self-hosted or acquired via bundle from ElfHosted.

Hosting

Don't want to use the public instance, or concerned about reliability during periods of high use? It's open-source, you can host it yourself!

ElfHosted (easy mode)

Self-hosting to stressful? ElfHosted offer ready-to-go, turn-key WebStreamr instances with $1, 7-day trials. Additionally, 33% of your subscription directly supports your developer! ❤️

(ElfHosted also offer advanced private hosting of the top Stremio Addons, as well as turn-key bundles providing streaming from RealDebrid with Plex, Emby, or Jellyfin)

Self-Hosting

You can run the latest WebStreamr via Docker. E.g.

 docker run \
    --detach=true \
    --name webstreamr \
    --rm \
    --pull always \
    --publish 51546:51546 \
    --env TMDB_ACCESS_TOKEN="YOUR_TOKEN" \
    --volume /tmp:/tmp \
    webstreamr/webstreamr

Environment variables

CACHE_DIR

Optional. Directory for persistent caches using SQLite files. Default: OS tmp dir.

CONFIGURATION_DESCRIPTION

Optional. To customize the description shown on the configuration page.

DISABLED_EXTRACTORS

Optional. Comma separated list of extractors which should be disabled. E.g. doodstream,vidsrc

DISABLED_SOURCES

Optional. Comma separated list of sources which should be disabled. E.g. frembed,vidsrc

FLARESOLVERR_ENDPOINT

Optional. If domains show Cloudflare challenges, FlareSolverr can be used to work around them. E.g. http://flaresolverr:8191 Proxy configuration is passed-through and only a single session is used to save resources. Byparr is not supported.

MANIFEST_ID

Optional. Add-on manifest ID. Default: webstreamr

MANIFEST_NAME

Optional. Add-on manifest name. Default: WebStreamr

PORT

Optional. Port of the node web server. Default: 51546

PROXY_CONFIG

Optional. Proxies which should be used based on domain. Supports minimatch. E.g. dood.to:http://USERNAME:PASSWORD@IP:PORT,*:socks5://172.17.0.1:1080 would use an http proxy for dood.to and a socks5 proxy for all other domains.

Some hosters are a bit picky when it comes to IPs. Best case is if you use a residential IP. If you can't do that, then I suggest to use a VPN / proxy like Cloudflare WARP. DoodStream is not working with WARP. Free Webshare proxies seem to work with it.

TMDB_ACCESS_TOKEN

Required. TMDB access token to get information like title and year for content. Use the API Read Access Token.