{
    "schema": "eupdate-package-specification-v1",
    "author": "PB <pavel.bartos.pb@gmail.com>",
    "project_id": "08c513cbd7758de9",
    "software_id": "estudio",
    "software": "eStudio",
    "module": null,
    "release_id": "88e1e0a17a2a243f6b66276cd53abb52",
    "version": "0.8.2",
    "release_date": "2026-10-15",
    "published_at": "2026-10-15T13:56:32+00:00",
    "bytes": 877084,
    "sha256": "1c711b7153b334162a9d4aac0cc221bfbf434527774e4804fbaadd137fcfd2b3",
    "file_count": 646,
    "languages": {
        "JavaScript": {
            "bytes": 1193309,
            "files": 14
        },
        "PHP": {
            "bytes": 276940,
            "files": 33
        },
        "HTML": {
            "bytes": 125112,
            "files": 489
        },
        "CSS": {
            "bytes": 89945,
            "files": 9
        },
        "Python": {
            "bytes": 33927,
            "files": 9
        },
        "SQL": {
            "bytes": 28100,
            "files": 2
        },
        "Shell": {
            "bytes": 16403,
            "files": 9
        }
    },
    "installation_url": "https://update.estudium.eu/package.php?software_id=estudio&version=0.8.2",
    "update_url": "https://update.estudium.eu/package.php?software_id=estudio",
    "install_json": {
        "software": "eStudio",
        "software_id": "estudio",
        "version": "0.8.2",
        "release_date": "2026-10-15",
        "author": {
            "name": "PB",
            "email": "pavel.bartos.pb@gmail.com",
            "created": "10/2026",
            "website": ""
        },
        "description": {
            "cs": "Webové rozhlasové studio pro správu audio knihovny, playlistů, reklamních kampaní a odbavování více stanic přes Liquidsoap a Icecast. Obsahuje PFL, cart wall, hodinové šablony, zálohy a správu aktualizací a modulů přes eUpdate. Knihovna podporuje přetažení souborů/složek, metadata a obaly, skupiny, BPM a plovoucí předposlech. HTML vzhledy přes Composer php-templates 2.6.1. Zálohy skladeb/složek jako ZIP s audio.json, zpětný import a tři mobilní vzhledy (eStudium, monochrome a ENCO). Každý audio import se převádí do nastavitelného archivu (výchozí Opus 160 kb/s VBR), se zachováním tagů a obrázků. Volitelný rok skladby a audio.json s daty vytvoření a verzí aplikace. Oprava Composer aktualizací ze služby a lišty PFL/CUE. Mazání skladeb ze správce souborů s aktualizací audio.json a zachováním historie vysílání. Oprava práv webu při interním update (UMask=0027), příprava Composer před výměnou aplikace, mazání celých složek a záhlaví bez loga po přihlášení. Formuláře podle typu nahrávky: jingle, reklama se sponzorem, talk/pořady/přednášky s pořadem, mluvčím a tématem. Složky podle kapely nebo interpreta, sponzora či tématu/pořadu/mluvčího; jingly společně. Typová metadata a přepis řeči se přenášejí přes audio.json a ZIP. Výchozí skupiny cart wall a rotate jingle; automatické doplňování jinglů do volných cart polí bez přepsání ručních nastavení. Samostatný výstup cart wall a funkční PFL. Volitelné sdílení knihovny mezi všemi rádii se zachovanými oprávněními k úpravám. Výchozí Pořad1/Pořad2 sjednoceny do Pořady bez odstranění nahrávek. Kompletní diagnostický ZIP, drag & drop loga rádií a vložení obalů přímo do audio souborů bez rekomprese zvuku. Plovoucí informace o vysílané nahrávce, přesouvání PFL/CUE, přehled knihovny s GrafJS 1.3.9, sekce About s CZ/EN manuály a Markdown dokumentací. Opravené responzivní hodinové šablony a české/anglické rozhraní. Automatické posouvání výpisu úloh, import odspodu nahoru a průběh přenosu i zpracování celé dávky. Cart wall s přímou volbou kanálu a živým průběhem přehrávání. Barevné koláčové grafy všech rozdělení knihovny. Veřejné obaly v metadatech Icecastu s náhradou logem vysílající stanice. Řazená živá fronta playlistu s ON AIR, průběhem a přepínačem S/L pro zastavení po skladbě. Nezávislé souběžné přimíchávání cart wall přes běžící program. Odladěné přehrávání Opus, stabilní průběh a oprava dohrání v režimu L. Volitelný odposlech konkrétního výstupu včetně ch1 a živý stav připojení Icecastu. Rozšířená diagnostika přehrávání. Nezávislé odesílání metadat Icecastu bez blokování zvuku, rychlejší spouštění cartů a trvalý tichý výstup. Velké červené ON AIR, kurzor přehrávání a checkboxy pro souběžný odposlech ch0/ch1/ch2. Přímý živý odposlech výsledného mixu s omezeným bufferem a automatickým obnovením; alternativní poslech Icecastu. Větší kruhové Play/Stop a rozložení panelů podle ENCO. Zvukový editor Z/K, INTRO, SEGUE a HOOK; režim stránek HOOK a serverové prolínání ukázek. Jednotný login eWeb/eCast. Vokál M/F/B/D v knihovně a ZIP/JSON. OpenAI API konektor s dynamickým výběrem modelů, poslechem audia a AI návrhy popisu a metadat pro skladbu nebo složku. Samostatná serverová fronta, kontrola výsledků, ochrana ručních změn, volitelné zvukové značky a synchronizace audio.json. Provozní log ke stažení, seznam záloh se stažením a smazáním, posuvníky dlouhých oken nastavení. Oprava živého PC odposlechu při běžícím playlistu, bezpečné čtení stavu zvukové smyčky a obnovení pozastaveného zvuku v prohlížeči.",
            "en": "Web radio automation with an audio library, playlists, campaigns, Liquidsoap/Icecast playout, browser cue, cart wall, hourly templates, backups and eUpdate updates and modules. Configurable audio archive encoding (Opus 160 kb/s VBR by default), embedded metadata/artwork, optional release year, JSON creation timestamps and application version. Service-based Composer update fix and responsive cue controls. Three responsive themes including ENCO; library file deletion with JSON synchronization and preserved broadcast history. Fixed web directory permissions during service updates, staged Composer preparation, recursive folder deletion and a signed-in header without the logo. Type-specific metadata forms and ZIP backups for jingles, sponsored ads, talks, shows and lectures. Folders follow band/artist, sponsor or topic/show/speaker; jingles share one directory. Default cart wall / rotate jingle groups, automatic jingle placement in free cart cells, dedicated cart output and PFL. Optional library sharing across radio stations with ownership-based editing permissions. Legacy numbered show categories merged without deleting recordings. Complete diagnostics ZIP, drag-and-drop station logos and artwork embedded into audio without re-encoding. Floating now-playing information, movable PFL/CUE, library statistics with GrafJS 1.3.9, About with CZ/EN manuals and Markdown documentation. Responsive hourly templates and improved Czech/English interface. Task logs automatically follow new output; imports process bottom to top with file transfer and batch progress. Cart wall with direct output selection and live playback progress. Colored pie charts for library breakdowns. Public artwork URLs in Icecast metadata with broadcasting-station logo fallback. Ordered live playlist queue with ON AIR, progress and an S/L stop-after-track toggle. Independent simultaneous cart wall overlays mixed over the program. Correct Opus timing and stop-after-track handling. Per-output browser monitoring including ch1, live Icecast connection state and extended playback diagnostics. Non-blocking Icecast metadata updates, faster cart triggers and continuous silent output. Large centered red ON AIR, play cursor and checkboxes for simultaneous ch0/ch1/ch2 monitoring. Direct live monitoring of the final studio mix with bounded buffering and automatic reconnect; optional Icecast monitoring. Larger circular Play/Stop controls and ENCO-style playout strip layout. Waveform editor with HEAD/TAIL, INTRO, SEGUE and HOOK ranges; server-controlled hook pages and transitions. Shared eWeb/eCast login. Vocal M/F/B/D in library and ZIP/JSON. OpenAI API connector with dynamic model selection, audio listening and AI metadata/description proposals for a track or folder. Independent server queue, result review, concurrent-edit protection, optional sound markers and audio.json synchronization. Downloadable operational log, backup listing/download/deletion and scrollable long settings windows. Fixed live PC monitoring during playlist playback, safe audio-loop state snapshots and browser audio recovery."
        },
        "license": "MIT",
        "package": {
            "type": "release",
            "target": "software",
            "license": "MIT",
            "access": "open",
            "visibility": "public"
        },
        "compatibility": {
            "os_types": [
                "linux"
            ],
            "distributions": [
                {
                    "id": "ubuntu",
                    "name": "Ubuntu",
                    "versions": [
                        "24.04",
                        ">=24"
                    ]
                }
            ],
            "architectures": [
                "x86_64"
            ],
            "native_windows_supported": false,
            "native_macos_supported": false,
            "distribution_ids": [
                "ubuntu"
            ],
            "os_versions": [
                ">=24",
                "24.04"
            ],
            "any_linux_distribution": false
        },
        "requirements": {
            "php": ">=8.3 <9.0"
        },
        "installation": {
            "commands": {
                "linux": {
                    "supported": true,
                    "command": "bash ./setup.sh --install",
                    "mode": "automatic"
                },
                "windows": {
                    "command": null,
                    "supported": false,
                    "mode": "unsupported"
                },
                "macos": {
                    "command": null,
                    "supported": false,
                    "mode": "unsupported"
                },
                "other": {
                    "command": null,
                    "supported": false,
                    "mode": "unsupported"
                },
                "source": {
                    "command": null,
                    "supported": false,
                    "mode": "unsupported"
                }
            },
            "update_command": "bash ./setup.sh --update",
            "requires_root": true,
            "web_root": "."
        },
        "documentation": {
            "readme": "estudio-server/README.md",
            "changelog": "estudio-server/CHANGELOG.md",
            "manual_cs": "estudio-server/docs/MANUAL-CZ.md",
            "manual_en": "estudio-server/docs/MANUAL-EN.md"
        },
        "archive_metadata": {
            "working_directory": "estudio-server",
            "publisher": "dcf6d41fbcdf0e16",
            "updated_at": "2026-10-15T13:56:32+00:00",
            "application_author": "PB <pavel.bartos.pb@gmail.com>"
        },
        "dependencies": {
            "database": "MariaDB >=10.11",
            "playout": "Liquidsoap >=2.2.4; adaptive syntax for 2.4+",
            "audio": "FFmpeg with libopus/libmp3lame/FLAC; python3-mutagen",
            "webserver": "Nginx + PHP-FPM",
            "templates": "Composer: pavel852/php-templates 2.6.1",
            "charts": "Bundled GrafJS 1.3.9 (user-supplied; original licensing preserved)"
        },
        "eupdate": {
            "software_id": "estudio",
            "checkin_schema": "eupdate-checkin-v1",
            "checkin_url": "https://update.estudium.eu/check/",
            "updates_url": "https://update.estudium.eu/updates.json",
            "modules": true
        },
        "validation": {
            "platform": "Ubuntu 24.04 x86_64",
            "scope": "0.8.2: reproduced recursive metadata callback and unsafe timer readiness polling in Liquidsoap 2.4.0. Tested fixed generated request/cross/mixer/limiter/harbor graph, late WAV joins across track changes and real Chromium Web Audio/recovery. Database engine mocked; control uses test TCP transport. Production Nginx/PHP-FPM/systemd deployment requires target-server validation. See VALIDATED.md."
        },
        "created": "10/2026",
        "project": {
            "website": ""
        },
        "homepage": "",
        "license_custom": ""
    },
    "readme": "# eStudio Server 0.6.2\n\nAutor: **PB** · Vytvořeno: **10/2026** · E-mail: **pavel.bartos.pb@gmail.com**  \nLicence vlastního kódu: **MIT** (soubor LICENSE).\n\nWebové rozhlasové studio pro Ubuntu 24 a novější: správa audio knihovny, playlistů, reklamních kampaní a odbavování více stanic přes Liquidsoap a Icecast. Webová konzole ovládá skutečný přehrávač a zobrazuje jeho stav. Balíček obsahuje TUI instalátor i bezobslužnou aktualizaci.\n\n## Funkce\n\n- Přímý živý odposlech mixu a cart wall s omezeným bufferem; samostatně volitelný odposlech Icecastu a malé checkboxy kanálů.\n- Větší kruhové Play/Stop a panely s červeným ON AIR, průběhem, S/L a označením výstupu.\n\n- Kompletní diagnostický ZIP ke stažení z nastavení, se stavem služeb, logy a odstraněnými přístupovými údaji.\n- Plovoucí informace o právě vysílané nahrávce a přesouvatelná lišta PFL/CUE s obnovením z horního tlačítka.\n- Loga rádií přes drag & drop; výměna obalu v editoru přímo v audio souboru bez nové komprese zvuku.\n- Přehled celé knihovny: počty a minuty, jazyky, roky, žánry a další členění v tabulkách i grafech GrafJS 1.3.9.\n- About s [českým](docs/MANUAL-CZ.md) a [anglickým](docs/MANUAL-EN.md) manuálem a ostatní Markdown dokumentací. Doplněné CZ/EN rozhraní.\n\n- Více stanic, uživatelé, role a přidělené stanice; audit přihlášení a operací. Volitelné sdílení knihovny mezi rádii.\n- Cart wall: jingly skupiny cart wall se automaticky doplní do volných polí. Vlastní výstupní kanál pro každé rádio, samostatný PFL; ruční pole mají přednost. Výchozí skupina rotate jingle zůstává mimo automatické doplňování.\n- Typové formuláře: jingle (název, popis, transcript), reklama (+ sponzor), talk/pořad/přednáška (+ pořad, mluvčí, téma). Všechny typy mají také rok, skupinu, obrázek a enable/disable. Hudba zachovává úplná hudební metadata.\n- Složky: hudba podle kapely, jinak interpreta; reklamy podle sponzora; jingly společně; talk/přednášky podle tématu → pořadu → mluvčího. Podrobnosti v docs/LIBRARY-THEMES.md.\n- Audio knihovna: drag & drop souborů i složek MP3/WAV/FLAC/AAC/Ogg/M4A/Opus, předvyplněná metadata a obaly, skupiny, distributor, rok skladby, BPM, jazyky, žánry, enable/disable, cue body a volitelný přepis řeči. Posuvný přehrávač pro předposlech.\n- Interní archiv: povinný převod všech nových audio importů, výchozí Opus 160 kb/s VBR; formát a tok lze změnit v Nastavení → Audio archiv. Zachování metadat a vložených obrázků.\n- Soubory: procházení složek, mazání skladeb a celých složek s potvrzením, průběžný audio.json s daty vytvoření a verzí eStudia, ZIP záloha jedné skladby nebo složky a zpětný import popsaného ZIPu.\n- Instalace modulů z lokálního ZIPu přetažením, se zachováním kontrol kompatibility a licencí.\n- Tři responzivní vzhledy eStudium, monochrome a ENCO, záhlaví konzole s názvem eStudio a verzí. Logo eStudium zůstává na přihlašovací obrazovce. HTML šablony v `php-app/html/estudium/` zpracovává `pavel852/php-templates` 2.6.1, instalovaný přes Composer.\n- Playlisty: vytvoření, kopie, výběr, přidávání, odebrání, pořadí a aktivace pro zvolený kanál.\n- PLAY, STOP, SKIP, ruční přehrání a přibližně dvousekundový FADE přes místní socket Liquidsoapu. Historie vzniká při skutečném začátku skladby; konzole ukazuje skutečný uplynulý/zbývající čas a RMS úroveň.\n- Výstupy ch0/ch1/ch2 s vlastním playlistem, fallbackem, gainem v dB, autostartem a více Icecast streamy. MP3, AAC/ADTS a Ogg/Vorbis; volitelně TLS a ALSA zařízení.\n- PFL v prohlížeči nebo na samostatném serverovém kanálu. Cart wall má stránky po 16 slotech a spouští nahrávku na vybraném kanálu.\n- AutoMix a hodinové šablony: posloupnost kategorií, omezení opakování interpreta, reklamní kampaně s platností a hodinovým limitem.\n- Automatický import z vymezených adresářů, kontrola duplicit, volba ponechat/smazat zdroj, záznam chyby a času běhu.\n- Zálohy databáze, konfigurace a modulů; audio volitelně. Obnova s předchozí bezpečnostní zálohou. Volitelný export přes předem nakonfigurovaný rclone.\n- eUpdate: denní i ruční check-in, stabilní identita instalace, kontrola nových verzí a aktualizace přímo z webu. Správa dostupných a povolených modulů.\n- TUI instalace, oprava databáze, reset hesla a diagnostika; systemd služby a časovače.\n\n## Instalace přes TUI\n\n```bash\nunzip estudio-server-v0.6.2.zip\ncd estudio-server\nsudo bash install.sh\n```\n\nInstalátor se zeptá na doménu, port, databázi a administrátorský účet. Nabídne místní Icecast a volitelný Whisper. Hesla mají náhodné výchozí hodnoty; nejsou pevně nastavena na admin123. Podrobný návod a bezobslužný režim jsou v [INSTALL.md](INSTALL.md).\n\nPo přihlášení nahrajte audio, sestavte playlist, přiřaďte jej výstupu v Nastavení → Outputs, zapněte výstup a stiskněte PLAY. „Přehrávat po startu služby“ zapíná autostart.\n\n## Aktualizace a dokumentace\n\nVe webu: Nastavení → eUpdate → Zkontrolovat verzi → Aktualizovat. Ručně z rozbaleného balíčku: `sudo bash setup.sh --update`. Upgrade zachovává konfiguraci, audio, účty i identitu instalace a před změnou vytváří zálohu.\n\n- [CHANGELOG.md](CHANGELOG.md): změny proti 0.2.3.\n- [docs/EUPDATE.md](docs/EUPDATE.md): check-in, licence a publikování balíčku.\n- [docs/MODULES.md](docs/MODULES.md): formát a správa modulů.\n- [docs/OUTPUTS.md](docs/OUTPUTS.md): výstupy a PFL.\n- [docs/AUTOMIX.md](docs/AUTOMIX.md): automatika a reklamy.\n- [docs/SECURITY.md](docs/SECURITY.md): oprávnění, zálohy a aktualizace.\n- [VALIDATED.md](VALIDATED.md): provedené testy a jejich rozsah.\n\nVerze neobsahuje cluster/HA ani nativní Dante/AES67 ovladač. Cart wall přeruší program vybraného kanálu; není samostatným směšovačem podkresu. Hodinový plán není hard-clock vysílání s garantovanou přesností přepnutí na sekundu.\n\nPodrobnosti nové knihovny a úprav vzhledu: [docs/LIBRARY-THEMES.md](docs/LIBRARY-THEMES.md).\n\nVerze 0.5.3 opravuje nedostupnost webu po interní aktualizaci (adresáře 0750/root:root); postup obnovení přístupu pro starší instalace je v INSTALL.md.\n\nGrafy používají dodaný GrafJS 1.3.9. Jeho původní balíček uvádí UNLICENSED; licence MIT vlastního kódu eStudia tuto knihovnu nepřelicencuje. Viz php-app/html/third-party/GRAFJS-NOTICE.txt.\n\n\n## eStudio 0.7.0\n\nZvukový editor Z/K, INTRO, SEGUE a HOOK; stránky HOOK v Cart Wall; vokál M/F/B/D; login jako eWeb/eCast. Návody: docs/SOUND-EDITOR-CZ.md a docs/SOUND-EDITOR-EN.md. GUI ovládá samostatnou serverovou službu, která pokračuje i po jeho zavření.\n\n## eStudio 0.8.0 – AI metadata\n\nV Nastavení → ChatGPT / AI vložte OpenAI API klíč. Dostupné modely se načtou automaticky; vyberte model popisu a metadat a model s audio vstupem. Nastavení uložte a použijte Ověřit oba modely. V knihovně spustíte AI pro skladbu nebo celou složku. Analýza pokračuje na serveru i po zavření GUI; výsledky najdete přes AI analýzy. Před uložením je zkontrolujte. [Český návod](docs/AI-CZ.md) / [English manual](docs/AI-EN.md).\n\n## eStudio 0.8.1 – provozní log a zálohy\n\nNastavení → Provozní log připraví stažitelný textový soubor. Nastavení → Zálohy zobrazuje soubory s datem a velikostí a umožňuje stažení/smazání. Dlouhá nastavení se posouvají uvnitř okna. Podrobnosti: [český návod](docs/MAINTENANCE-CZ.md) / [English guide](docs/MAINTENANCE-EN.md).\n\n## eStudio 0.8.2 – poslech v PC při přehrávání playlistu\n\nOpraveno čtení času a stavu zvukového řetězce, které mohlo přerušit přehrávání/odposlech. Po aktualizaci celého balíčku přes `sudo bash setup.sh --update` obnovte stránku v prohlížeči (Ctrl+F5), zvolte kanál a zdroj **Studio · živě** a zapněte Poslech v PC. Při pozastavení zvuku prohlížečem stejné tlačítko poslech obnoví. Samotné kopírování souborů webu nestačí: aktualizace musí přegenerovat a restartovat Liquidsoap služby.",
    "download_url": "https://update.estudium.eu/download.php?project=08c513cbd7758de9&release=88e1e0a17a2a243f6b66276cd53abb52",
    "package_target": "software",
    "requirements": {
        "php": ">=8.3 <9.0"
    },
    "license": {
        "id": "MIT",
        "name": "MIT",
        "custom_text": ""
    },
    "deployment": {
        "archive_root": "estudio-server",
        "web_root": "."
    },
    "project_type": "application",
    "hosting": null
}