Skip to content

Why a shared Jellyfin frontend hits the public addon rate limit

A lot of people are setting this up at the moment: point a hosted Jellyfin frontend at ElfHosted's free public AIOStreams, sign in with a Jellyfin app, and browse your library on an Apple TV.

It works for a while, and then searches start coming back empty. You haven't misconfigured anything, and it usually isn't your usage that caused it.

What is actually happening

The free public instance at aiostreams.elfhosted.com allows 100 searches up front and refills one a minute. That limit is deliberate. It is a free resource shared by a lot of people, and without it a few very heavy users would make it slow for everybody. If you use it directly, from Stremio on your own devices, you will almost certainly never notice it.

The allowance is counted per address, since an address is about the only thing a request reliably carries.

A hosted frontend changes that. It fetches on your behalf from its own server, so your requests reach us from that service and not from your house. So does everyone else's. Several hundred people end up sharing one allowance between them. It empties quickly, refills at a search a minute for the whole crowd, and everyone behind it gets throttled, including whoever has just opened the app for the first time that day.

Not aimed at any particular service

Any service that fetches on your behalf from shared infrastructure works this way, and none of this is a criticism of the software. It is a consequence of where the requests come from.

Can the frontend forward my address instead?

There is a standard header for this, and it would put the counting back on individual people.

The trouble is that the header can contain anything. If we honoured it from services we don't operate, anyone wanting a larger allowance could simply claim to be someone else, and the limit would stop meaning anything. So it is only trusted from infrastructure we run ourselves.

Then why not allow the frontend through?

This is the sensible next question and the answer is less obvious than the last one.

An allowance belongs to an address. Lifting it for one address lifts it for everything that reaches us through that address, and we have no way to separate one person's traffic from another's once we've done that.

At that point we are relying on the other service's controls instead of our own. If whatever sits in front doesn't enforce a comparable per-user limit, anyone wanting unmetered access to our addons has been shown how to get it: point at the service, let it fetch, and the requests arrive already approved. It would get used for exactly the bulk scraping the limit exists to prevent.

None of which says anything about anyone's intentions. We can't inspect another service's controls, we can't verify them, and nobody would tell us if they changed. Relying on them would leave our free instance protected only as well as somebody else's configuration, maintained by people we have no contact with.

Can I self-host jlly.cc?

No. It is a closed, hosted service with no public source release, so there is nothing to run yourself.

Most people asking have already worked out the shared-address problem and assumed their own copy would solve it. That reasoning is sound, but the option isn't there. The good news is that the frontend isn't the part that needs to be yours.

What to do about it

These frontends accept any Stremio addon URL, so you can keep using yours. It is the addon at the other end that needs to change.

Point it at a different public instance

Ours isn't the only free AIOStreams. uptime.ibbylabs.dev/aiostreams tracks the popular Stremio addons and is where most people look for one that's currently up.

Understand what this does, though. The frontend still fetches for all of its users from one address, so it pools them into whichever instance you choose. You have moved the queue, not left it, and the allowance you're spending now belongs to someone else. It might work fine today. It works less well the more people do it.

Run AIOStreams yourself

Free, and it is the thing people are really after when they ask about self-hosting the frontend: your own addon, your own address, your own allowance, and a dashboard you can get into.

Self-hosting AIOStreams on a VPS or free tier covers what it takes, including the tedious parts about keeping something running, updated and reachable from outside the house.

Have the whole thing run for you: the AIOMagic Bundle

Your setup is really two pieces: an addon that finds streams, and a Jellyfin frontend that puts them in an app. Both are currently shared with strangers, which is where the problem comes from.

The AIOMagic Bundle is the same two pieces, both yours, at $18 per month:

Piece What it replaces
AIOStreams the public instance you are sharing, with your own allowance, credentials and dashboard
JellyStreams the hosted frontend, running as your own instance so requests come from you
AIOMetadata your own catalogs, and the certification data that makes kids' profiles work
Debrid and Usenet accounts bundled, so no separate signup and no separate bill
Debridge routes across both and falls back between them when a source is dead
PostersPlus ratings, award sashes and quality badges on your artwork

Nobody else is using any of it, so there is no shared allowance to run out.

JellyStreams is a Jellyfin server, not an app, so your client doesn't change: Odin, Infuse, Swiftfin, Strand, Moonfin and the official Jellyfin apps all connect to it the same way.

It can also hold a household, which a shared frontend has no way to do: a profile per person with its own watch state, kids' libraries filtered by certification, daily screen-time caps, and a notification when somebody starts watching. There is more in AIOStreams with Jellyfin apps and Jellyfin parental controls.

See the AIOMagic Bundle Compare the options

Just the addon, if that is all you need

A private AIOStreams instance on its own is $9 per month, with its own rate limits, credentials and dashboard. It fixes the throttling and leaves your current frontend alone. The bundle makes sense if you would rather the frontend were yours too.

Being fair about it

Hosted frontends have real advantages and it would be no use to you to pretend otherwise.

They cost nothing. They work immediately, with no setup beyond signing in. Several of them organise content nicely as well, and browsing by streaming provider is an easier way in than a list of catalogs you haven't built yet.

The one thing they can't be is yours, which on a shared allowance is why the library stops working around teatime.

Frequently asked questions

Can I self-host jlly.cc?

No. There is no public source release; it is a hosted service only.

Is my ElfHosted account blocked?

No, and on the free public instance there is no account to block. The allowance belongs to whichever address the requests came from, and that's the frontend's server.

Will it settle down on its own?

Not really. A shared allowance gets tighter as the frontend gains users.

I barely use it. Why am I affected?

The limit isn't about how much you personally asked for. You can open the app for the first time that day and find the allowance already spent.

Why not allow the frontend through?

An allowance belongs to an address, not to a service, so lifting it lifts it for everything reaching us that way. Whether that is safe then depends on controls we can't inspect, verify, or hear about when they change, and a frontend allowed through without comparable limits of its own becomes the route for the bulk scraping the limit exists to stop.

Can I point the frontend at a different addon?

Yes. These frontends take any Stremio addon URL, and the addon is the part that needs to change. Another free public instance is the same arrangement though, since the frontend still pools all of its users into one address wherever you point it.

Does a VPN help?

No. The address being counted is the frontend's, so nothing at your end affects it.

Is the public instance going away?

No. It is free and rate-limited, both on purpose, so people can try the thing properly before deciding whether to pay for anything. Used directly, most people never reach the limit.

What is the single most useful thing I can do?

Work out whether the addon you are pointing at is shared with everybody or is yours. If it is shared, that is the whole explanation, and nothing you change at your end will help.