Connections and keys, field by field
Every outside service GeekStream can use, every field it asks for, and whether you
actually need it.
**Read this first, because it saves the most time:** only **three** things are genuinely
required to watch something. A Usenet provider, at least one indexer, and a TMDB key.
Everything else on this page is optional and adds a section or improves one.
Keys are stored encrypted on your server. They are never sent to a television, never put
in a web address, and are not shown again once saved — you replace rather than read them.
---
The three you need
### Usenet provider (Newsgroup providers)
Where the media actually comes from. You buy this from a Usenet provider; a cheap
"block" account is enough to begin with.
| Field | What to put |
|---|---|
| **Provider label** | Any name you will recognise |
| **Server address** | From your provider, e.g. `news.example.com` |
| **Port** | Usually `563` for secure |
| **Username / Password** | Your provider account |
| **Connection limit** | Optional. Your plan states a maximum — using more gets you throttled |
| **Retention in days** | Optional but **worth filling in**. It is how far back your provider keeps things, and it stops GeekStream offering you releases it cannot fetch |
| **Priority** | Which provider is tried first, if you have several |
| **Role** | Main provider or a backup for filling gaps |
### Indexers (Search sources)
Where GeekStream *looks*. The provider above has the files; an indexer is the catalogue.
You need at least one. Two or three is better, because they do not all carry the same
things — and notably, not all of them carry comics or audiobooks even when they say they
do.
| Field | What to put |
|---|---|
| **Provider preset** | Pick yours if listed; it fills in the endpoint |
| **HTTPS API endpoint** | The indexer's API address |
| **Account label** | Any name you will recognise |
| **Access key** | Your API key from that indexer |
| **Request allowance** | How many searches your account is allowed |
| **Hourly / Daily request budget** | The numbers from your indexer account page. **Get these right** — they are how GeekStream avoids getting you rate-limited or banned |
| **Minimum time between matching requests** | Seconds. **`0` means automatic**, which is the right answer unless an indexer has asked you to slow down |
| **Categories / Capabilities** | Optional. Left blank, GeekStream asks the indexer what it carries |
| **Priority** | Which is asked first |
### TMDB (Movies & TV metadata)
Posters, descriptions, cast, years. Without it you have filenames.
| Field | What to put |
|---|---|
| **Metadata provider** | TMDB |
| **TMDB API key** | Free from the API section of your TMDB account settings |
---
Worth adding early
### Fanart.tv
| **Fanart.tv API key** | Free from the “get an API key” page on the Fanart.tv site |
Background art and clear logos — the wide images and transparent titles behind the hub.
Not required, and the difference on a television is large.
### OpenRouter (what chooses your Discover)
Discover is not a list your indexers produced. It is written by a language model: your
server describes your taste and asks for titles worth putting in front of you. **So the
model doing the choosing decides how good Discover is.**
| Field | What to put |
|---|---|
| **OpenRouter API Key** | From the Keys page of your OpenRouter account |
| **Model** | A list, fetched from OpenRouter itself. Leave it on **Default** unless you want to choose |
**Test OpenRouter Key** checks both the key and the model and **spends nothing** — it asks
OpenRouter about the account rather than generating anything.
#### Choosing a model
The list is grouped **Free** and **Paid**, and comes from OpenRouter live, so a model
released this morning is in it. **Type it myself**, at the bottom, takes any
`vendor/model` identifier for something the list has not caught up with.
Models that cannot be told to answer in a fixed shape are marked. Avoid them: GeekStream
asks for a list of titles as structured data and refuses an answer that arrives as prose,
so one of those produces nothing and you find out a day later.
Three free ones worth trying:
| Model | Why |
|---|---|
| `openrouter/free` | **Start here.** Not one model but OpenRouter's own router across the free pool. Free models are the first to be rate-limited, and this is the only choice that routes around that without you noticing |
| `nvidia/nemotron-3-super-120b-a12b:free` | **The best free picks.** The largest free model that still answers to a schema, and only twelve billion of its parameters are active per request, so it is quicker than its size suggests |
| `google/gemma-4-31b-it:free` | Google's own open model. Long context, dependable structure, nothing to configure at Google's end |
#### What about Gemini?
**Gemini is reachable through OpenRouter**, so there is no second account to set up and
no separate key to manage. Choose any `google/gemini-...` entry from the **Paid** group of
the model list. OpenRouter does not offer Gemini free, which is why none appear under
Free.
A Gemini key saved on an older server still works and is still used when no OpenRouter key
is present, but there is no longer a field for it: one account in front of every model is
simpler than two accounts and a fallback.
#### Cost, and the free tier
Costs land on your OpenRouter account and are usually a fraction of a penny per request.
Free models cost nothing at all.
Free allowances belong to your **account**, not to a model, so switching from one free
model to another does not give you a fresh allowance. That also means the choice between
them is about the picks you get rather than how often you may ask.
See [Recommendations](dashboard-tour.md#8-recommendations) for how often to let it ask.
---
Per-section services
Each of these turns on one part of GeekStream. Skip any section you do not want.
| Service | Section | Fields |
|---|---|---|
| **Open Library** | Audiobooks | Username — your shelf becomes your wanted list |
| **Audiobookshelf** | Audiobooks | Server address, API key — chapters and covers |
| **Discogs** | Music | Username — your collection becomes what it looks for |
| **Metron** | Comics | Username and password. Free, and keeps a **Pull List** |
| **Comic Vine** | Comics | API key. Confirms details but cannot hold a list |
| **Private Metadata Source** | Unrated | the API key for whichever source you use |
| **IPTV** | Live TV | Profile name, connection type, server URL, username, password |
| **Trakt / Simkl** | History | Sign-in, so progress follows you between apps |
---
Settings that are not keys
### Storage
| **Library folder** | Where your media lives |
| **Backup folder** | Where GeekStream keeps its own backups |
Both required. See [Storage and libraries](storage.md).
### Quality
Separate settings for **Movies**, **Television**, **Music** and a **Fallback**.
**This is the setting most likely to make things seem broken.** A strict rule with nothing
matching it produces "no sources" on titles that plainly exist. If a section finds
nothing, loosen its quality rule before suspecting your indexers.
### Language
| **Interface language** | The dashboard and television |
| **Audio languages, in order** | Preference order, not a filter |
| **Subtitle languages, in order** | Same |
| **Subtitle mode** | When subtitles appear |
### Playback engine
Per section, **Stream it** or **Download and keep it**:
- **Stream it** — nothing is stored and a large film starts in seconds. Cannot play
releases packed in compressed archives, and a posting with damaged articles fails rather
than being repaired.
- **Download and keep it** — fetches the whole release, repairs it, unpacks it. Plays
reliably and instantly afterwards. Uses disk: roughly 140 MB for an album, 500 MB or
more for an audiobook.
Film, Series and Music stream by default. Audiobooks and Comics download by default,
because they are routinely posted inside compressed archives. **If disk is your
constraint, audiobooks are where it goes** — they are much larger than comics.
### Advanced connection behaviour
**You should not need any of this.** It exists for specific situations.
- **Search intensity** — how hard GeekStream looks. Higher spends your indexer allowance
faster.
- **Compatibility context / User-Agent** — what requests call themselves. Some indexers
expect a familiar name. This changes what a request *says it is*, not where it comes
from.
- **Proxy URL / Route** — send requests to particular hosts through a proxy.
---
When a service will not connect
Work through it in this order, because it saves the most time:
1. **Is it the key, or is it the reach?** A key that is rejected says so. A server that
cannot be *reached* is a different problem, and on a rented server it is usually that
the service you are connecting to is on a private network your server is not on.
2. **Check the Check strip on that screen.** It names the specific failure.
3. **"No sources" is rarely your indexers.** See
[Troubleshooting](troubleshooting.md#no-sources-on-albums-and-audiobooks-that-plainly-exist)
— the fastest test is to ask the indexer directly with no category filter and count what
comes back.
---
Next: [Storage and libraries](storage.md), or back to
[Every screen in the dashboard](dashboard-tour.md).