Music, books, courses and photos
Music with lyrics, radio and sonic mixes, audiobooks, a reader for ebooks and comics, courses you can track and search, and photos with places and faces.
On this page
- Music
- A library built from tags
- Playing music
- Lyrics
- Radio, "Sounds like this" and segues
- Artist pages
- Audiobooks
- Ebooks and comics
- Courses
- Sections and lessons
- Progress
- The course player
- Notes and bookmarks
- Transcripts and search
- The learning dashboard
- Photos and home videos
- Browsing photos
- Uploading from your phone or computer
- Who sees where a photo was taken
- Tagging photos by what's in them
- Faces
- Home videos
- Features that use a small local model
Collectoh isn't only for films and TV. Each kind of library has its own pages and player, and they all share the same accounts, permissions and search. To create a library, see setting up libraries. For how to arrange your files, see how to name your files.
Music
A library built from tags
A music library is organised by the tags inside your files: album artist, album, disc and track numbers, and MusicBrainz IDs where present. Folder names are only used to fill gaps. An artist counts as one artist however the tags spell the name, so "Smashing Pumpkins" and "The Smashing Pumpkins" share a page. Compilation albums are recognised. Artwork and biographies come from the sources described in metadata.
Playing music
Music plays in a bar along the bottom of the screen and keeps going while you browse. Open the bar to see the full Now playing screen.
- Queue: Play next and Add to queue are in the menu of every track, album and artist. You can reorder and clear the queue. The player can shuffle and repeat. Shuffle favours tracks you rate highly, play often and haven't heard for a while, but it never leaves anything out.
- Gapless: tracks from the same album play one after another with no gap.
- Loudness: evens out volume using the ReplayGain values in your tags. You can level by album when you play an album and by track otherwise, always by track, always by album, or not at all.
- Crossfade: 2 to 12 seconds, set on the Now playing screen or in Settings → Playback. Consecutive tracks from the same album always stay gapless, whatever you choose.
- Visualiser: bars, a waveform or a ring on the Now playing screen.
Lyrics
The lyrics panel shows the words from the track's tags, or from an .lrc file with the same name beside the track. Synced lyrics scroll with the song, highlight the line being sung, and jump to any line you click. If a track has no lyrics, an admin can press Find lyrics to fetch them from LRCLIB, which needs no key.
Radio, "Sounds like this" and segues
- Radio is available on a track, an album or an artist. It starts a mix of music that sounds similar, and avoids what you've played recently.
- More like this on a track's page lists the most similar tracks. Once the track has been listened to (see below), the heading changes to Sounds like this.
- Segue…, in a track's menu, asks which track you want to end on. It then plays a path of tracks whose sound moves gradually from the first track to the second.
All of this starts from the nightly analysis, which measures each track's tempo, key and energy. A small audio model also listens to three short stretches of every track to learn how it actually sounds. This listening is on by default (Admin → Settings → Music → Hear tracks for sonic similarity). It takes about a second per track, so a large library takes a few hours, but only once. Tracks that haven't been listened to yet use the nightly measurements instead.
Artist pages
An artist's page shows their biography and albums, plus:
- Popular: the artist's most played tracks on Deezer, matched to your own files. If Deezer doesn't know the artist, you see the tracks played most on your server instead. Play popular queues them.
- Similar artists: artists in your library come first, and the rest appear under Not on this server.
- Music videos: videos kept in the artist's folder, or in a
Music Videosfolder at the top of the library with names likeArtist - Title.
Audiobooks
A folder of audio files is one book, with each file as a chapter. A single M4B file is one book, with its chapters inside the file. The audiobook player adds:
- buttons to skip back or forward 30 seconds
- speeds from 1× to 3× that don't change the pitch of the voice, remembered for each book
- a sleep timer of 15 to 90 minutes, or End of chapter
- a Chapters panel listing the book's files and the chapters inside the file that is playing
Your position is saved to the second. Books you've started appear under Continue listening, and each book's page shows how much time is left. A chapter only counts as finished right at its end, so a long file is never marked as done too early.
Ebooks and comics
A Books library has Series in reading order, Authors and Books views, plus a Continue reading shelf. A book's page lists its files for download and has a Mark as read button. Covers come from an image file beside the book or from inside the book itself: an EPUB's own cover, a comic's first page or a PDF's first page.
| Format | In the reader |
|---|---|
| Continuous pages with zoom, searchable text and the document's outline | |
| EPUB, MOBI, AZW3, FB2 | Pages or continuous scrolling, with adjustable text size and line spacing |
| CBZ, CBR, CB7 | Comics, page by page. The server unpacks CBR and CB7 files first. |
The reader has Contents, Find in book and a position bar showing how much you've read. Its Settings let you choose text size, line spacing, pages or scrolling, and a Paper, Sepia or Dark background. These settings are remembered separately on each device. Turn pages with ← and →, Page Up and Page Down, or Space. Zoom with + and −.
Your place is saved as you read, and a book counts as read once you reach 99%. Collectoh doesn't remove copy protection, so books still locked by a shop's DRM won't open.
Courses
Courses libraries are part of Collectoh Plus, the transcript search with them.
Sections and lessons
Point a Courses library at your folders and Collectoh works out where each course begins, even when courses sit inside nested category folders. It turns each course's folders and numbered files into sections and lessons, in the right order. PDFs, zip files, code folders and links stored alongside the videos are attached as resources.
If a course's structure comes out wrong, an admin can press Structure looks off? on the course page to open Fix the outline. There you can:
- drag lessons between sections, or move them with the arrows
- rename, add and remove sections
- mark lessons as optional
Saving locks the structure, so a rescan won't undo your changes.
Progress
A lesson is complete when you've watched nearly all of it (90% unless the library is set differently) or pressed Mark complete. If you unmark it, your place in the lesson is kept.
A course's percentage counts lessons, not minutes, so one long lecture doesn't dominate. Time remaining is counted in minutes. Optional lessons don't count towards either. Continue opens the first unfinished lesson, and Reset progress starts the course again.
The course player
Lessons open in course mode. Beside the video are Outline, Notes, Transcript, Bookmarks and Resources panels. The controls add previous and next lesson buttons, Mark complete and Autoplay next. Playback speed is remembered per course, so an instructor you watch at 1.5× stays at 1.5×.
Notes and bookmarks
- Press N to write a note. The note is pinned to the moment you opened it, not the moment you finished typing. Markdown works, and Ctrl+Enter saves.
- Press B to add a bookmark, with a label and a colour. It appears as a mark on the seek bar.
Notes and bookmarks are private to you. The Notes page (open Your notes on any course) searches everything you've written. Export notes, on a course's page or on the Notes page, downloads Markdown files grouped by lesson, where each timestamp links back to that moment in the video.
Transcripts and search
A lesson's subtitles become its transcript automatically, whether they're in a file beside the video or inside it. The Transcript panel follows along as you watch, jumps to any line you click, and can search within the lesson.
The main search (Ctrl+K, or ⌘K on a Mac) also looks inside transcripts. In-video hits show the matching words and open the player at that moment. Films and episodes have transcripts too, made from their subtitle files (see Playback).
Search by meaning adds a Moments about this section. It finds passages that discuss what you typed, even when they use different words: for example, "that bit about container networking". A small multilingual model reads each new transcript on your server. It is on by default (Admin → Settings → Search → Search transcripts by meaning).
The learning dashboard
The top of a Courses library shows:
- This week: time watched, lessons finished and your day streak
- In progress: your courses, each with its next lesson
- Skills
- Recently completed
A day counts towards your streak once you've watched five minutes. You can also download whole courses; see playback and transcoding.
Photos and home videos
Browsing photos
A photo library has four views:
- Timeline: newest first, grouped by month, with a way to jump to any month.
- Albums: your folders, exactly as they are on disk.
- People: the people recognised in your photos (see below).
- Map: photos that have a GPS position, on a map from OpenStreetMap.
Dates come from each photo's EXIF data, or from the file's own date if there is no EXIF date. iPhone HEIC photos and camera RAW files (CR2, NEF, ARW, DNG) appear like any other photo. Open a photo to see it full screen, with a slideshow and its camera details. Its page also offers Download original.
Uploading from your phone or computer
Open the photo library in a browser, including on your phone, and press Upload photos. Afterwards, Collectoh tells you how many photos were added, how many it already had and how many failed. It recognises a photo that has already been uploaded. Admins and regular accounts can upload; child and guest accounts can't.
Uploads are saved in an Uploads folder inside the library's first folder, sorted by year and month. That folder must be writable. In Docker, don't mount it read-only (:ro).
Who sees where a photo was taken
Each account has a Photo locations setting in Admin → People, with three choices: Coordinates and the map, Place names only or Nothing about where. With either of the last two, that account doesn't see coordinates or the Map. Location data is also removed from the photo library's files when that person views or downloads them. That way, a guest who can look at an album doesn't find out where the house is.
Tagging photos by what's in them
Turn on Tag photos by what is in them in the photo library's settings (Admin → Libraries → Edit). It's off by default, and part of Collectoh Plus. A small image model looks at each photo overnight and gives it keywords from a list of about a hundred, such as beach, sunset, dog and birthday.
Keywords appear as chips above the photos, and you can select one to filter by it. On a photo's page, keywords the model chose are marked with a sparkle. An admin can edit a photo's keywords. Once edited, the keywords count as yours and the model leaves that photo alone.
Faces
Turn on Recognise faces in the photo library's settings. It's off by default, and part of Collectoh Plus. Each night, Collectoh finds the faces in each photo and groups the ones that look alike. Then, in the People view:
- Who's this? shows groups of faces waiting for a name. An admin can name a group, choosing someone already known or adding a new name. The photos in that group, and every new photo of that person, are then credited to them. Each named person becomes an album.
- Put away hides a group of strangers. Not followed by a person's name removes a wrong name.
- A photo's page lists the people in it. A single face can be named or corrected there.
People are only shown to those who are allowed to see the photo.
Turning Recognise faces off in a library deletes every face found there and any names that were only used for faces. Admin → Settings → Faces → Delete all face data does the same for every library at once and turns recognition off everywhere. It asks you to confirm twice, can't be undone, and never touches the photos themselves.
Home videos
A home video library mirrors your folders. Collectoh takes each video's date from the first of these that it finds:
- the recording time stored in the video
- a date at the start of the file name, such as
2019-07-04 Beach.mp4or20190704_103000.mov - the file's own date
Group by date arranges a folder by when things were filmed. Recently taken shows the newest videos, and Play all plays a whole folder. A folder.json file can give a folder its own title, summary and date.
Features that use a small local model
Four features run a small model on your own server. Each model is downloaded once, the first time it's needed, from the Hugging Face Hub into the models folder of your metadata directory. After that, all the work happens on your server's processor. Your music, photos and transcripts are never sent anywhere.
| Feature | Switched on in | Download | Needs pgvector |
|---|---|---|---|
| Search by meaning (Plus) | Admin → Settings → Search (on by default) | About 120 MB | Yes |
| Sonic similarity | Admin → Settings → Music (on by default) | About 80 MB | Yes |
| Photo tags (Plus) | Each photo library's settings (off by default) | About 150 MB | No |
| Faces (Plus) | Each photo library's settings (off by default) | About 40 MB | Yes |
- Each model uses up to four CPU threads and about half a gigabyte of memory while it's working. The face models use far less. Models pause while anyone is streaming and are unloaded after fifteen minutes of inactivity.
- Photo tags and faces run in the nightly maintenance window. Transcripts and music tracks are processed whenever nobody is streaming.
- pgvector comes with the database image in Collectoh's compose file. Without it, search only matches exact words, "sounds like" uses the nightly measurements, and faces aren't detected. Admin → Diagnostics → Search by meaning tells you what's missing.
- Diagnostics also shows each feature's progress, for example "Photos looked at: 812 of 1,204".
If your server has no internet access, you can install the models by hand. Download the files listed below from each model's Hugging Face page and copy them into models/<model id>/ in the metadata directory, keeping the onnx/ folder:
| Feature | Model id | Files |
|---|---|---|
| Search by meaning | Xenova/multilingual-e5-small | config.json, tokenizer.json, tokenizer_config.json, onnx/model_quantized.onnx |
| Sonic similarity | Xenova/larger_clap_music_and_speech | config.json, preprocessor_config.json, onnx/audio_model_quantized.onnx |
| Photo tags | Xenova/clip-vit-base-patch16 | config.json, preprocessor_config.json, tokenizer.json, tokenizer_config.json, onnx/text_model_quantized.onnx, onnx/vision_model_quantized.onnx |
| Faces | opencv/face_detection_yunet and opencv/face_recognition_sface | face_detection_yunet_2023mar.onnx and face_recognition_sface_2021dec.onnx, each copied directly into its own model folder (no onnx/ folder) |
Collectoh checks the face model files against the exact versions it expects, so copy them unchanged.
Last updated 28 September 2026