Repository navigation
0.6.7
VodMax 0.6.7 is a reliability and security release. It follows a full review of the server, the web interface and the apps. Recordings are the biggest change. They survive a busy subscription and a faulty audio frame, and they end up as MP4 files you can move around in.
Before you update
- A backup first is wise (Settings → System → Backup). The database schema does not change, so the server makes no copy in
pre-upgrade/this time. But stored data does change:- Title keys change at the first sync after the update. Channels, films and series with Cyrillic, Greek, Arabic or other non-Latin names are now told apart, and so are names with ß, ø, æ, ł or đ. Before, such titles could share one card. Favourites, "continue watching", rules and recordings move to the new keys by themselves, also when you restore a backup made before 0.6.7. A favourite that sat on a shared card ends up on every title that shared it.
- Titles the provider removed more than 30 days ago are deleted, once a day. Titles that something still points to stay: progress, recordings, downloads and hidden titles.
- The image cache prunes itself, once a day. Entries older than 30 days, and anything over 256 MB, are removed and fetched again when needed.
- Backups now hold more, see below. Backups made before 0.6.7 still restore.
- Going back to 0.6.6: restore the backup you made before updating. A 0.6.7 backup also restores on 0.6.6, but these do not come back:
- favourites on non-Latin titles;
- titles hidden from "continue watching".
- Finished recordings still in MPEG-TS become MP4 at the first start. This covers recordings left in TS by an older version, by a failed conversion or by a missing ffmpeg. They are converted in the background, one at a time, and each large file takes a couple of minutes of CPU and disk.
- A conversion starts only when the disk has room for a second copy. Otherwise it is tried again at the next start.
- The TS is deleted only when the MP4 is plausible: at least half its size, and at least 80% of the length when ffprobe can tell.
- A recording whose conversion fails stays in TS with the note "(conversion to MP4 failed)". It is not retried.
- Native install (systemd):
vodmax-updatereplaces the program, not/etc/systemd/system/vodmax.service.- The new unit file is much stricter. "Updating" in the install guide explains how to copy it, and how to go back if the service does not start.
- With a graphics card, add the
vodmaxuser to therendergroup. VAAPI conversion and the built-in assistant on Vulkan need it. - Downloads and recordings are private to the
vodmaxuser (umask 077). Programs running as other users cannot read them.
- Docker: the image moves to Alpine 3.24, pinned by digest, and ffmpeg changes major version. If you use VAAPI, run Settings → System → Video conversion → Test again. Images are published only when the tests pass, and
latestmoves only with a release tag. - Behind nginx or another reverse proxy: raise the read timeout (nginx
proxy_read_timeout 400s), so that a slow assistant answer is not cut off.
Recordings
- Insisting only when it helps (0048):
- After a connection that brought data, a recording reconnects within 3 s and takes the connection from viewers, as before.
- After connections that bring nothing, the wait grows up to 1 minute. Viewers lose the connection at most once every 5 minutes. A channel that comes back is still recorded.
- A full disk stops the recording and keeps what was recorded.
- "Another device may be using the subscription": after 3 connections in a row that the provider closes within a minute, the status shows this warning for 12 hours, and the finished recording says so in its note.
- Back-to-back programmes on one channel are both recorded. Before, the margins of the first one hid the second.
- A rule that matches consecutive programmes now schedules all of them, so expect more scheduled recordings after the update.
- With one connection, the second recording starts when the first ends, and its first minutes are at the end of the first file. With more connections, both run for those minutes.
- Faster Stop: Stop answers at once. A restart during the conversion no longer starts the recording again.
- MP4 despite a faulty audio frame: when the plain copy fails, the conversion is tried again with the audio re-encoded to AAC. The log shows the real ffmpeg error.
- Clean files: a recording writes only whole MPEG-TS packets across reconnections, so browsers and LG TVs no longer stop at the first reconnection.
- Moving around a recording still in TS works in the browser and in the Android app, also when it is finished, with its real length. When a recording is stopped early, its real end time is saved.
- Suspending a rule also deletes the recordings it had scheduled that start more than 10 minutes later. A recording you stopped and deleted is not scheduled again by its rule while the programme is still on.
- Scheduled recordings stay on their channel when the provider renumbers its channels.
Backups
- Profiles are included: names, PINs (hashed), kids profiles, colours, icons, and the titles hidden from "continue watching".
- A restore replaces the profiles. Profile 1 always stays.
- Every device picks its profile again after a restore. A device locked to a profile stays on the profile with the same name and kind. If the backup has no such profile, that device must be paired again.
- Recordings keep their files: each recording carries its file name. After a restore, a recording whose file is missing becomes "failed" with a note.
- Restoring an older copy on the same server keeps the finished recordings made since, when their files are still there. A recording that was running or still in TS when the copy was made, and finished or became MP4 since, stays playable and is not listed twice.
- Downloads find their titles again after the next sync.
- Older backups restore as before. The current profiles stay, because those backups have none, and titles you hid from "continue watching" show again.
Live TV, films and series
- Taking over the connection: films and episodes (MP4 and MKV) ask "Take over?" when another device holds the connection. Before, playback failed. After you take it, the film no longer takes it back by itself. The Android app asks the same question.
- Live TV reconnects:
- When the pause buffer on the server ends, for example because another device took the connection, the TV reopens the channel.
- Fast zapping plays the channel you chose. The channel you left neither takes the connection back nor shows its errors.
- Disk almost full (0046): below 1.5 GB free, live pause buffers stop. Live TV continues without pause, and recordings keep running.
- Direct films: a film whose provider stops sending data is reopened and continues. ffmpeg opens only file formats, never a playlist that could leave the VPN.
- Restarting a programme still on air: at the end of the archive, playback continues instead of jumping back to live, in the browser and in the Android app.
- Player:
- Full screen survives a change of episode, audio, subtitles or format.
- "Resume from" no longer restarts from zero when the browser cannot read the file.
- On phones, the full-screen button is an icon.
- TV control bar on a PC: between 801 and 1366 px the bar takes two rows instead of running off screen. The Multiview and Full screen buttons are icons at every width.
- Remote control:
- Left and Right move along the same line only. At the end of a row nothing happens; the focus no longer jumps diagonally.
- On the TV, episode cards scroll one at a time and stay fully on screen.
- Up and Down go to the nearest row. On a series page, Up from the season tabs reaches the action buttons instead of Back. Up no longer jumps to the menu when the row above has scrolled under it.
- In the guide, holding Right no longer jumps ahead by hours, and an empty slot no longer traps the remote.
- Channel menu: with more than 600 channels there is "More channels".
Catalogue and guide
- Categories per subscription: with two subscriptions, each has its own film and series categories, with the right names.
- Kids profiles:
- Titles in categories that the provider does not list are treated as adult. They are hidden from kids profiles and stay visible to the others.
- A new title stays hidden until the selection has checked it.
- The guide keeps what it has: an empty answer from the provider, or a guide with only past programmes, no longer deletes the programmes to come. Refresh now with an empty guide gives a clear message, not an internal error.
- More playlists and guides read correctly:
- XMLTV guides in ISO-8859-1 or windows-1252.
- M3U lists with a logo written inside the line, FHD and regional versions that share a tvg-id, and backup channels without a tvg-id.
- Series whose seasons are written the PHP way.
- Stalker portals with one malformed channel.
- Categories like "Live Sport UK", "Live Calcio", "LIVE EVENTS" and "TV Locali" are no longer taken for foreign countries.
- "Live Sport Arabia" and country names written in Italian (Croazia, Ucraina, Messico, Filippine…) are recognised as foreign. Such categories may move to another country group after the first sync.
- Shorter nightly sync: titles that did not change are not written again.
- People index: one unreadable title no longer stops it every night.
- Images:
- On the normal network, logos and posters on loopback or link-local addresses (this machine, cloud metadata) are no longer fetched. Home network addresses still work.
- An unreachable image is remembered for 10 minutes and no longer fills the log with errors.
- A film or series page without its poster no longer shows a broken-image box.
Assistant
- "Tonight" sees the whole evening. Each channel brings its main programme, the one nearest 21:15 (and, after 18:00, the one on air). Favourite channels come first, then official numbers. Suggestions will differ from 0.6.6.
- Time limits:
- One online call stops after 1 minute.
- A whole question stops after 3 minutes with an online service, and after 6 minutes with a model at home. A very slow model on a CPU can now hit the limit.
- Clear errors: "the assistant didn't answer in time", a refused key, credit used up or a service overloaded. Before, these showed as an internal error.
- Wishes that go wrong:
- A wish whose first step fails gives an error instead of unchecked picks.
- "Tonight: a film with…" gives "thinking" models the time they need.
- Small models' near-miss answers are used.
- Titles with numbers ("2001 odissea nello spazio", "Blade Runner 2049") are found.
Security and access
- The administrator token no longer lives in the browser (0044).
- A browser that holds
admin.tokenswaps it for a device of its own, "Signed in with the admin token", on its next load. You can rename it, lock it to a profile or revoke it in Settings → Devices. - From then on, Switch profile asks for the administrator's PIN on that browser.
- Pasting
admin.tokenagain still works as the emergency key.
- A browser that holds
- A
/#token=link, or a return from the home sign-in, in a browser that is already paired now asks before it replaces the current access. A link whose token does not work is ignored. - PINs: five attempts are now really five, also with parallel requests.
- Devices:
- The device you are using cannot revoke itself or lock itself to a profile.
- The Android app in standalone mode finds its administrator access again.
- Error messages: unexpected errors show their technical details to the administrator only. Other profiles see a plain message.
- Away from home, pairing and sign-in attempts are counted for whoever makes them.
- Kids profiles no longer have an API that listed every category, adult ones included.
Settings
- Subscriptions, Devices and Sync work again on 2020 LG TVs (webOS 5) and old Android WebViews.
- Pairing shows a single code, which does not change while you type it.
- Settings sections appear when they are complete.
- Browsers send only player errors to the server log. To see every player event while you debug a device, set
vodmax.playerDebugin that browser's local storage.
Android app and LG TV
- Native player in landscape (0047): on phones and tablets, films, episodes, recordings and catch-up open in landscape. The full-screen button switches back to the phone's own rotation.
- Recordings in the app: finished and running TS recordings can be moved through, with their real length.
- Full screen in pages: the full-screen button of the page (live TV) now works in the app, and Back leaves it first.
- Reconnecting:
- After a network error the app shows "Reconnecting to the server…" for 15–35 s before the setup screen.
- In standalone mode, the app restarts the built-in server if it stops.
- Updates: the app accepts only the VodMax APK from VodMax releases. Addresses with capital letters or
:80/:443no longer open pages in the browser. - Back closes the profile screen, the update notice and the PIN screen.
- A recording that becomes MP4 while you watch it continues from the same second.
- The 0.6.6 app with a 0.6.7 server keeps a working time bar on finished TS recordings until it updates itself.
- LG launcher: at start, OK or Back lets you change server. It waits 1.5 s on every start with a saved server.
Other changes
- Downloads stop after 5 failed attempts in a row.
- The log says which recordings were converted to MP4 at start.
- A film too large for the disk no longer fills the recordings disk.
- When two versions of one film are downloaded, they no longer end up in one file. The second gets " - " in its name.
In breve
- Prima di aggiornare, un backup. Lo schema del database non cambia, ma cambiano le chiavi dei titoli non latini (preferiti e regole li seguono da soli). I titoli spariti dal provider da più di un mese si cancellano.
- Registrazioni in TS: al primo avvio le registrazioni finite ancora in TS diventano MP4, una alla volta.
- Registrazioni più affidabili:
- insistono solo quando serve;
- con due programmi di seguito si registrano tutti e due, quindi le regole programmano più registrazioni;
- il file resta leggibile dopo le riconnessioni;
- "Ferma" risponde subito;
- lo stato avvisa se forse un altro dispositivo usa l'abbonamento.
- Backup con profili, PIN e profilo bambini. Dopo un ripristino ogni dispositivo sceglie di nuovo chi guarda.
- Token di amministrazione: il browser lo scambia con un dispositivo suo, revocabile.
- TV e player:
- "Prendere il controllo?" anche per film ed episodi;
- la diretta si riapre da sola;
- la barra dei comandi sul PC va a capo;
- telecomando: su e giù vanno alla riga accanto, e nella scheda di una serie le frecce non saltano più i pulsanti né le puntate;
- sotto 1,5 GB liberi la pausa della diretta si ferma, le registrazioni no.
- Assistente: "Stasera" guarda tutta la serata, con i preferiti prima. Una domanda dura al massimo 3 minuti online e 6 in casa.
- App Android:
- lettore in orizzontale con schermo intero;
- nelle registrazioni TS ci si sposta;
- riconnessione automatica al server.
- Installazione nativa: il nuovo file del servizio, più protetto, va copiato a mano (istruzioni in "Aggiornare"). Con la scheda grafica, l'utente vodmax va nel gruppo
render. - Docker: Alpine 3.24 con un nuovo ffmpeg; con VAAPI rifate la prova.