Ultimate Free AIOStreams Setup

Welcome! This guide will help you configure an AIOStreams instance with an optimal mix of the best free P2P (torrent) and HTTP (web) add-ons. No Debrid service is required.

1. Who is this guide for?

  • People living in countries where P2P and HTTP streaming are allowed, or who understand how to stream safely (e.g. using a VPN).
  • People who do not want or need to pay for premium debrid services.
  • Users who feel their current setup returns too few results, or ignores certain add-ons, and want more options to choose the best stream themselves.

2. Add-on Setup

Note: All instructions below are accompanied by relevant images. You can click any image or carousel item to view it in full screen!

Let's start by initializing the AIOStreams instance. Follow the steps below to start the configuration.

  1. Pick any public AIOStreams instance per this guide .

    Note: 'Nightly' instances have all the latest features, but may offer a slightly less stable experience.

    Warning: Do not use the 'ElfHosted' instance, as it does not support P2P and HTTP scraping.

    In this guide, we use the Nightly Midnight instance. Selecting the Nightly Midnight instance from the AIOStreams public list
  2. After opening the link, close all pop-ups (we don't want to use a predefined template). Make sure to toggle the 'Advanced' option to unlock more configuration settings.
  3. Navigate to the 'Addons' tab. Clicking the Addons navigation tab

Installing from the Marketplace

Select the Marketplace.

Selecting the add-on Marketplace option

Using the search option, find, configure, and install the following add-ons in the exact order they are listed below:

  • P2P (torrents): Torrentio, StremThru Torz, Meteor, Comet, MediaFusion, TorrentsDB
  • HTTP (direct web): Sootio, Peerflix, Flix-Streams, HDHub

Manual Manifest Add-ons (Optional)

In addition to the marketplace, you can manually add external add-ons from the bottom of the page.

Note: This is an optional step for those who want access to additional streams. While you likely won't need them for 99% of mainstream titles, they serve as excellent fallback sources.

Click the links below to copy their manifest URLs:

Below is a step-by-step process of adding one external add-on from the list above. For all custom add-ons, the process is identical.

Add-on Timeout, Priorities & Grouping

Since we've configured multiple add-ons, some of them may take a long time to respond if they are unreachable or experiencing issues. To avoid unnecessary delays, configure a global timeout. Set the timeout to a value you're comfortable waiting for (e.g. 15000 for 15 seconds).

Warning: If you find yourself waiting too long for add-ons, reduce the timeout value accordingly.

Make sure to set the add-on priorities. Give more priority to fast, reliable add-ons (like Torrentio and Sootio) that return better results quickly.

Why group add-ons?
Some less reliable add-ons can take a long time to return results or return very few results at all. To keep Stremio responsive, place these add-ons into fallback groups (tier 2 and tier 3). These tiers are only utilized if the fast, reliable add-ons in tier 1 don't return enough high-quality streams.

If you prefer faster loading, set Group Behaviour to Parallel. If you use Stremio frequently and want to reduce the load on add-on hosts (at the cost of longer wait times), choose Sequential. For the best overall experience, Parallel is highly recommended.

Setting the add-on Group Behaviour to Parallel

We will organize our add-ons into three groups. To ensure that groups 2 and 3 are only used when group 1 doesn't return enough high-quality streams, we'll create Condition Expressions . To do this, simply follow the two guidelines below for the group 2 and group 3 conditions. Then, copy the generated expressions into the corresponding condition fields, as shown in the tutorial images below.

Group 2 Condition

We only want to wait for the second group's results if our primary add-ons didn't find enough high-quality streams. Adjust the numbers below to tweak your tolerance:

Wait for group 2 if we found fewer than 1080p streams,
OR fewer than 4K streams
(provided we have at least 1080p streams).

              

Group 3 Condition

Group 3 contains the least reliable add-ons. We only want to query them in worst-case scenarios where almost nothing was found.

Wait for group 3 if we found fewer than 1080p streams,
OR fewer than 4K streams
(provided we have at least 1080p streams).

              

Now, copy the expressions above into the Condition fields for groups 2 and 3. The add-ons have been grouped based on personal experience, but feel free to adjust the groupings to suit your preferences.

3. Smart Filters

In the Filters section, we will configure Stremio to ignore dead links, hide garbage qualities, and prioritize the best formats for modern screens. Adjust the following settings:

Resolutions & Quality
Make sure to set your 'Excluded Resolutions' and 'Quality' settings to match what your device can handle. We highly recommend excluding CAM and TS to prevent blurry theater recordings from appearing in your results.

  • Encode: Select all encodings in 'Preferred Encodes' and use this preference order:
    AV1 > HEVC > AVC > Unknown > XviD > DivX. Setting the preferred video encode order
  • Stream Type: Set external for 'Excluded Stream Types'. This prevents frustrating browser-based links from mixing in with your Stremio results. Excluding the 'external' stream type option
  • Visual Tag:
    • Excluded: 3D, H-OU, H-SBS (unless you have a 3D TV).
    • Preferred: All, except the excluded ones.
    • Order: IMAX > HDR+DV > DV > DV Only > HDR10+ > HDR10 > HDR > HDR Only > HLG > 10bit > SDR > AI > Unknown
    Ordering visual tags prioritizing IMAX and HDR
  • Audio Tag:
    • Preferred: Select all.
    • Order: Atmos > DTS:X > DTS-HD MA > TrueHD > FLAC > DTS-HD > DD+ > DTS-ES > DTS > DD > OPUS > AAC > Unknown
    Ordering audio tags prioritizing Atmos and lossless formats
  • Language:
    • Preferred: English, Dual Audio, Dubbed, Multi, Original, Unknown.
    • Order: English > Original > Dual Audio > Multi > Dubbed > Unknown
  • Seeders: Set the 'Min' value for 'Required Seeder Range' to 1. This instantly removes dead P2P torrents that will never load.
  • Matching: Enable all three options (title, year, episode) to ensure Stremio doesn't show you streams for the wrong show (for example). Toggling title, year, and episode matching on

Stream Expressions (auto-hiding clutter)

Within the 'Stream Expressions' section, we can set up smart rules under 'Excluded Stream Expressions' to hide lower qualities only if we already have plenty of high-definition choices.

1. Auto-Hide SD Streams

If we find a healthy amount of HD content, there's no reason to clutter the screen with 480p or 360p results.

Remove SD qualities if we found at least 1080p streams,
AND at least 720p streams.

              

2. Auto-Hide 720p Streams

Similarly, if we are flooded with 1080p or 4K streams, we can safely hide the 720p results. Feel free to fine-tune the thresholds:

Remove 720p qualities if we found at least 1080p streams,
OR at least 4K streams.

              

Now, copy the stream expressions above into the corresponding expression fields on the AIOStreams configuration page as shown below.

Pasting the stream expressions into the Excluded Stream Expressions settings field

Size & Deduplicator

  • Size Limit (Optional): If you have a limited internet plan or a slow connection, set the 'Max' file size within 'Size' filters under the 'Global' section. Example: If your internet speed is 20Mbps, you should cap the Max value at 15GB to prevent buffering. Setting a global max file size limit for streams
  • Deduplicator: Under 'Deduplicator' filters, toggle 'Enable' to merge identical torrents found by different add-ons into one single result.
    • Set all entries under 'Group Handling' to Single Result.
    • Pick filename, infoHash, smartDetect under 'Detection Methods'.
    • Set 'Multi-Group Behaviour' to Keep All.
    Enabling the deduplicator to merge duplicate streams automatically

4. Sorting Rules

Recommended Strategy
For this free setup, placing higher resolutions at the top while using seeders as a strong secondary criteria ensures you get the best looking stream that will actually play without buffering.

Configure your primary sorting rules as shown below, or customize them to suit your preferences.

Configuring the sorting criteria

5. Formatter Design (Optional)

This setting dictates how much information each individual Stremio stream result will display, and how pretty it looks.

  • Under 'Formatter Selection', you can select 'Google Drive' for a built-in layout with lots of details, or pick one of the minimal options if you prefer a cleaner look. Choosing the Google Drive formatter layout from the dropdown
  • For the ultimate experience, select 'Custom'.
    • You can build your own formatter using the custom format maker .
    • Or, skip the work: Copy and paste the custom formatter used in this guide (if you like the style).

      Name Template

      {stream.resolution::exists["{stream.resolution::replace('2160p','   4K ')::replace('1440p','    2K ')::replace('p','P')}‍"||"‍     "]}{stream.type::exists["‍{stream.type::replace('debrid','    ')::replace('p2p','⁽ᵖ²ᵖ⁾')::replace('live','⁽ˡᶦᵛᵉ⁾')::replace('http','⁽ʷᵉᵇ⁾')::replace('usenet','‍⁽ⁿᶻᵇ⁾‍')::replace('stremio-usenet','‏⁽ⁿᶻᵇ⁾')::replace('info','⁽ᶦⁿᶠᵒ⁾')::replace('statistic','⁽ˢᵗᵃᵗˢ⁾')::replace('external','⁽ᵉˣᵗ⁾')::replace('error','⁽ᵉʳʳᵒʳ⁾')::replace('youtube','⁽ʸᵗ⁾')}‍‍‍"||""]}{service.cached::istrue["⚡"||""]}{service.cached::isfalse["‍⏳‍​"||""]}{stream.quality::exists["‍‍\n  〈{stream.quality::title::replace('Bluray Remux','Remux')::replace('Web-dl','Web‍-‍dl')::replace('Hc Hd-rip','HC HDRip')::replace('Hdrip','HDRip')}〉‍     "||""]}{stream.message::~Download["{tools.removeLine}\n"||""]}{stream.message::~Download["{tools.removeLine}\n"||""]}

      Description Template

      {stream.title::exists::and::stream.library::isfalse["✎  {stream.title::title::truncate(15)}"||""]}{stream.title::exists::and::stream.library::istrue["☁︎  {stream.title::title::truncate(15)} "||""]}{stream.year::exists::and::stream.episodes::exists::isfalse::and::stream.seasons::exists::isfalse[" ({stream.year})"||""]}{stream.seasonEpisode::exists["  {stream.seasonEpisode::join('·')::replace('E','ᴇ')::replace('S','s')::replace('0','₀')::replace('1','₁')::replace('2','₂')::replace('3','₃')::replace('4','₄')::replace('5','₅')::replace('6','₆')::replace('7','₇')::replace('8','₈')::replace('9','₉')}"||""]}
      {stream.visualTags::=IMAX["{tools.removeLine}\n"||"{tools.removeLine}\n"]}{stream.encode::exists["▣  {stream.encode}  "||""]}{stream.visualTags::~DV::or::stream.visualTags::~HDR::or::stream.visualTags::~HDR10::or::stream.visualTags::~HDR10+::and::stream.visualTags::exists::and::stream.visualTags::=IMAX::isfalse["✦  "||""]}{stream.visualTags::exists::and::stream.visualTags::=IMAX::isfalse::and::stream.visualTags::~DV::isfalse::and::stream.visualTags::~HDR::isfalse::and::stream.visualTags::~HDR10::isfalse::and::stream.visualTags::~HDR10+::isfalse["✧  "||""]}{stream.visualTags::exists::and::stream.visualTags::=IMAX::isfalse["{stream.visualTags::sort::join(' · ')::replace('HDR · HDR','HDR')::replace(' · IMAX','')} "||""]}
      {stream.audioTags::exists["♬  {stream.audioTags::lsort::join(' · ')::replace('DD · DD','DD')::replace('DTS · DTS','DTS')}  "||""]}{stream.audioChannels::exists["♯  {stream.audioChannels::join(' · ')} "||""]}
      {stream.size::>0::and::stream.seasonPack::istrue["❖  "||""]}{stream.size::>0::and::stream.seasonPack::isfalse["◈  "||""]}{stream.size::>0["{stream.size::sbytes}"||""]}{stream.folderSize::>0["/{stream.folderSize::sbytes}"||""]}{stream.bitrate::exists[" · {stream.bitrate::sbitrate::replace('Mbps','ᴹᵇᵖˢ')::replace('Kbps','ᴷᵇᵖˢ')} "||""]}{stream.message::~Download["{tools.removeLine}"||""]}{service.cached::isfalse::or::stream.type::=p2p::and::stream.seeders::>0["⇄ {stream.seeders} 𖧧 "||""]}{stream.age::exists["· {stream.age}"||""]}
      {stream.proxied::istrue["⛊  "||"⛉  "]}{service.shortName::exists["[{service.shortName}] "||""]}{addon.name}{stream.private::istrue[" ⚿ ᴘʀɪᴠᴀᴛᴇ "||""]}{stream.indexer::exists::and::stream.type::~usenet[" · {stream.indexer::truncate(13)}"||""]}{stream.message::~Download["{tools.removeLine}\n"||""]}
      {stream.uLanguages::exists["⛿  {stream.uSmallLanguageCodes::join(' · ')::replace('ꜰ','ғ')::replace('x','х')::replace('ꞯ','ϙ')::replace('ꜱ','s')::replace('ᴅᴜᴀʟ ᴀᴜᴅɪᴏ','ᴅᴜᴏ')::replace('ᴅᴜʙʙᴇᴅ','ᴅᴜʙ')}  "||""]}{stream.seadex::or::stream.seScore::>0::or::stream.seScore::<0::or::stream.message::exists::or::stream.rseMatched::length::>0[" »  "||""]}{stream.seadexBest::istrue[" ʙᴇsᴛ ʀᴇʟᴇᴀsᴇ "||""]}{stream.seadex::istrue::and::stream.seadexBest::isfalse[" ᴀʟᴛ ʙᴇsᴛ ʀᴇʟᴇᴀsᴇ "||""]}{stream.seadex::isfalse::and::stream.rseMatched::length::>0["{stream.rseMatched::remove('TrueHD ATMOS')::remove('DD+ ATMOS')::remove('ATMOS')::remove('TrueHD')::remove('DTS-HD MA')::remove('FLAC')::remove('DTS-HD HRA')::remove('DD+')::remove('DD')::remove('DTS-ES')::remove('DTS X')::remove('DTS')::remove('AAC')::remove('Opus')::remove('DV (Disk)')::remove('DV')::remove('HDR10+ Boost')::remove('HDR')::remove('UHD Streaming Boost')::remove('HD Streaming Boost')::remove('INTERNAL')::remove('No-RlsGroup')::remove('FHD')::remove('UHD')::remove('HD')::remove('4K')::remove('126811')::remove('SiC')::remove('FraMeSToR')::remove('TheFarm')::remove('hallowed')::remove('BHDStudio')::remove('FLUX')::remove('Season Pack')::join('  ')::replace('UHD ','')::replace('HD ','')::replace('Movies Anywhere','MA')::upper::replace('F','ғ')::replace('X','х')::replace('Q','ϙ')::replace('0','₀')::replace('1','₁')::replace('2','₂')::replace('3','₃')::replace('4','₄')::replace('5','₅')::replace('6','₆')::replace('7','₇')::replace('8','₈')::replace('9','₉')::smallcaps::replace('ꜱ','s')} "||""]}{stream.message::exists[" {stream.message::replace('NZB Health: ✅','☑ ɴᴢʙ')::replace('NZB Health: 🧝','☑ ᴇʟғ ɴᴢʙ')::replace('NZB Health: ⚠️','ᴜɴᴠᴇʀɪғɪᴇᴅ ɴᴢʙ')::replace('NZB Health: 🚫','✘ɴᴢʙ')::smallcaps} "||""]}{stream.seScore::>0::or::stream.seScore::<0["{stream.seScore::string::replace('0','₀')::replace('1','₁')::replace('2','₂')::replace('3','₃')::replace('4','₄')::replace('5','₅')::replace('6','₆')::replace('7','₇')::replace('8','₈')::replace('9','₉')}"||""]}{stream.message::~Download["{tools.removeLine}"||""]}{service.cached::istrue::and::stream.message::~Download::istrue["\n➥ DL Stream"||""]}
      Copy and paste the expressions above. The resulting appearance is shown below.

Statistics Block (Optional)
Under the Miscellaneous section, you can toggle Statistics to 'On'. This will add a helpful block at the bottom of your Stremio results showing which add-ons succeeded, which timed out, and how many items were filtered out and why. Great for debugging!

Enabling the Statistics block in the Miscellaneous settings

6. TMDB Integration (Required)

For the smart filtering and exact-matching options to work, AIOStreams needs to know the exact metadata of the movie or show you clicked on. To do this, it is mandatory to provide a TMDB API key.

Once you are logged into TMDB and navigate to the API settings, copy your standard API key.

Navigating to the API Key to copy from your TMDB profile settings

Paste this key into the designated TMDB box on the AIOStreams setup page.

Pasting the TMDB API Key into the AIOStreams configuration

7. Installation

Before clicking install, you must create an AIOStreams account to save the configuration. Once saved, simply click the Install button. Stremio will open automatically and prompt you to install the add-on.

Make sure to save the password you used and the generated UUID separately.

If you don't save your credentials for the AIOStreams account, you will have to re-enter all of these settings if you ever want to make a small change later.

8. Final Result

Congratulations!

Your Stremio utilizes a highly-customized P2P and HTTP scraping engine. Because free streams can sometimes be unreliable, having a wide range of results ensures you will almost always find a playable, high-quality stream.

Showcase of Stremio displaying the final AIOStreams setup with multiple high-quality sources Additional showcase of the nicely formatted streams in Stremio

Found this guide helpful?

Maintaining this guide, configurations, and keeping track of the best add-ons takes time.

If this saved your time, consider buying me a coffee! Your support keeps this project alive and updated.

Send a Tip via Throne