Make Home your own
Collections and catalogs
Create folders of movies and shows, add your favorite lists, and organize them into your own Home rows. Start with the ready-to-import example, or build your own JSON file.
Updated 29 September 2026 · Android TV, Android mobile and ARVIO Web
No file uploads yet
Uploading a file directly into ARVIO is not yet supported. Use a public URL to your JSON file, or paste the JSON text into the collection import field. Uploading a file to GitHub or another host is different: ARVIO reads it from the link you provide.
Which one do you need?
A catalog is a list of titles, such as an MDBList or Trakt list. A collection groups sources into folders: a Home row called “My Collections” might contain “Popular Movies” and “Popular Shows” tiles. Opening a tile shows its titles.
These organize metadata, not playable media. You still need a separate source you are authorized to use to watch a title.
1. Create
Start with a working collection
Download the starter JSON or open it as plain JSON. It creates one Home row with two folders using TMDB discovery. No add-on is required for this example.
To try it immediately, paste this URL into ARVIO's collection importer:
https://arvio.tv/collections-catalogs/collections.json
For your own version, edit the file in a plain-text editor and keep the filename collections.json. This smaller example creates one folder:
[
{
"id": "my-picks",
"title": "My Collections",
"folders": [
{
"id": "popular-movies",
"title": "Popular Movies",
"description": "Movies with at least 100 votes.",
"sources": [
{
"provider": "tmdb",
"tmdbSourceType": "DISCOVER",
"mediaType": "MOVIE",
"sortBy": "popularity.desc",
"filters": { "voteCountGte": 100 }
}
]
}
]
}
]
titleat the top names the Home row. Each folder'stitlenames its tile.- Keep every collection ID unique, and every folder ID unique within its collection. Keep IDs unchanged when editing an existing import.
- Duplicate a folder to add another source. Use
"mediaType": "TV"for shows. For TMDB discovery you can add"year": 2025or"voteAverageGte": 7insidefilters. - Optional folder fields include
description,coverImageUrl,heroBackdropUrl,titleLogoUrlandtileShape(LANDSCAPEorPOSTER). Artwork URLs must point directly to images you have permission to use.
Use a curated list instead
For a hand-picked selection, create a public list on a supported service and use it as the folder's source. For example, replace the source object with { "provider": "mdblist", "slug": "YOUR-USERNAME/YOUR-LIST" }. The slug comes after /lists/ in the MDBList URL.
Other supported sources include public TMDB lists and movie collections, public Trakt lists, TMDB company/network and person/director sources, and installed add-on catalogs. Add-ons must already be installed; importing a collection does not install them. See the collection format notes for supported sources and limits.
2. Host
Get a free, public JSON URL
GitHub: use the raw file link
- Create a GitHub account, then a public repository, for example
arvio-collections. Adding a README when creating it makes the next step easy. - In that repository, choose Add file > Create new file. Name it
collections.json, paste your JSON, then choose Commit changes. You can also upload an existing JSON file to GitHub. - Open the committed file and choose Raw. Copy the URL from the browser address bar, not the normal GitHub file-view URL.
- Open the URL in a private/incognito window. It should return the JSON itself without asking you to sign in.
A raw URL looks like this. Replace the username, repository and branch with your own:
https://raw.githubusercontent.com/YOUR-USERNAME/arvio-collections/main/collections.json
A link containing github.com/.../blob/... is a web page, not the raw JSON link to paste into ARVIO. GitHub Pages is not required for the raw-link method. See GitHub's instructions for creating a repository and adding a file.
Alternative: GitHub Pages or another static host
GitHub Pages is available for public repositories on GitHub Free. Publish the repository with the JSON file in its published root, then use a URL such as https://YOUR-USERNAME.github.io/arvio-collections/collections.json.
Another free static-file host works too, provided it serves the actual file over a public HTTPS URL. Use the direct /collections.json URL, not an editor, preview, login or download-confirmation page. If accessing it directly from a browser app, the host may also need cross-origin access (CORS).
Keep it public-safe: do not include passwords, API keys, private server addresses or token-bearing add-on URLs. The file and its repository history can be read by others.
3. Import
Add the collection to ARVIO
Android TV and Android mobile
- Switch to the profile that should receive the collection.
- Open Settings > Catalogs > Import Catalog Pack / Collections.
- Paste your public JSON URL (or the JSON text itself) and confirm the import. Collections import directly; a traditional catalog pack may show a preview to confirm.
- Return to Home and find your new collection row. Open a folder to browse its titles. Use Catalogs settings to rename, reorder or remove entries.
ARVIO Web
Open Settings > Catalogs (Home Rows). Paste the URL or JSON into the Collection field and choose Import collections. This works in supported desktop, phone and tablet browsers.
Imports belong to the active profile. To use them across devices, connect ARVIO Cloud with the same account and select the same profile. A hosted file is not a promise of automatic refresh: after changing its structure, import the same URL again. Keep the URL and IDs stable to update that pack rather than create a separate one; existing names and ordering are preserved where possible.
Just want a list?
Add a catalog without creating JSON
You do not need hosting for an existing public Trakt or MDBList list. The list service already supplies the URL.
On Android
- Find or create a public Trakt or MDBList list and copy its list-page URL, not a single movie, search-results or profile URL.
- Open Settings > Catalogs > Add Catalog, paste the URL and confirm.
- Return to Home. You can change the row's name, order and card layout in Catalogs settings.
Example URL shapes (replace the placeholders with your actual list):
https://mdblist.com/lists/YOUR-USERNAME/YOUR-LIST
https://trakt.tv/users/YOUR-USERNAME/lists/YOUR-LIST
On ARVIO Web
In Settings > Catalogs (Home Rows), paste an MDBList list URL into the field showing the MDBList example and press Add. This simple web field is for MDBList; use the collection importer for a supported Trakt collection source instead of pasting a Trakt URL into that field.
Catalogs advertised by an installed add-on are a separate route: install the add-on through ARVIO's add-on settings, then manage its available catalog rows in Catalogs. A manifest URL is not a collection JSON file.
If it does not appear
The URL opens a website instead of JSON
Use the raw file URL. Check it without signing in. Links to GitHub's file viewer, cloud-drive previews and local files are not public JSON endpoints.
The JSON is rejected
Use double quotes, no comments and no trailing commas. Start with the working example above. Use unique IDs and at least one supported source per folder. Current limits are 2 million characters, 100 collection rows and 500 folders; unsupported sources are skipped, and imports with no supported folders are rejected.
The row exists but its folder is empty
Check the source list is public and has titles, the filters are not too restrictive, and any referenced add-on is installed. Upstream services may be slow or unavailable. Importing metadata cannot grant access to private lists or playable media.
My changes are not showing
First check the hosted URL contains the updated JSON; hosting caches can delay changes. Re-import the same URL in the correct ARVIO profile. Keep IDs stable. If you renamed an existing row locally, that local name can be preserved during re-import.
Can I select a JSON file from my phone or computer?
Not yet. Direct file uploads into ARVIO are not supported. Host the file and paste its public URL, or open it in a text editor and paste its JSON contents into the collection import field.
