Automatizacija objavljivanja epizode Infinituma

U našem dvočlanom podkast timu Alek je zadužen za pripremanje materijala kojeg skupimo između snimanja dve epizode, a ja za montažu i objavljivanje gotove epizode. Za montažu koristim Audacity, besplatni, open source, alat koji postoji u verzijama za sva tri vodeća operativna sistema.
Već duži niz godina svaka od naših epizoda ima poglavlja (podcast chaptere) koje sam u finalni MP3 fajl ubacivao koristeći Forecast od Marka Armena, autora iOS aplikacije za slušanje podkasta pod nazivom Overcast. Nažalost, Forecast može direktno da uveze labele koje su kreirane Appeovim Logicom Pro, odnosno Logic Pro poglavlja embeduje direktno u MP3 fajl. Kako kaže ChatGPT, to isto rade Reaper (ovaj softver za editovanje audio fajlova koristi Anže Tomič, naš sada već prijatelj, inače inspiracija da i mi počnemo da snimamo podkast) koji, kao i Logic, nije besplatan, a navodno to može i Adobe Audition za koji je potrebna pretplata za Adobe Cloud.
Kako Audacity nema opciju da embeduje poglavlja direktno u MP3 fajl, do pre dve epizode sam dok montiram epizodu ručno beležio markere u BBEditu sa stavkama odvojenim tabulatorima (tzv. tab delimited format teksta), a onda kada iz Audicitya izvezem WAV fajl i uvezem ga u Forecast koji od njega napravi MP3 ručno dodajem, uz mnogo copy&paste poteza, svako poglavlje. Na kraju ubacim artwork epizode i njen opis, ponekad na svako poglavlje dodam posebnu sliku ako imam vremena i ako to ima smisla, te na kraju snimim MP3 koji onda uploadujem u Simplecast, gde sam prethodno već kreirao novu epizodu i ubacio beleške. Posle toga je objavim ili podesim vreme u koje želim da je Simplecast objavi.
Sve u svemu, u zavisnosti od broja poglavlja i dužine epizode, to je moglo da doda i po sat na vreme potrebno da izmontiram i objavim epizodu. Probao sam da stvar automatizujem korišćenjem Keyboard Maestra, ali je to u tih par pokušaja oduzelo toliko vremena da sam sigurno za to isto vreme mogao da ubacim poglavlje u desetak a verovatno i više, epizoda, tako da sam digao ruke. Naime, Forecast nema opciju da uvezete poglavlja iz tekstualnog formata, ne podržava Apple Script, nema akcija za Automator, a nema nikakvih mogućnosti da se išta uradi uz pomoć Shortcuts aplikacije, tako da sam bio primoran da probam alat poput Keyboard Maestra.
A onda sam pre jedno dva meseca seo i, uz pomoć ChatGPT, napravio skript koji će mi uz pomoć ffmpeg utilityja za početak ubaciti poglavlja u MP3 fajl pre nego što ga otvorim u Firecastu i nastavim sa dodavanjem ostalih stvari, prethodno počevši da nazive poglavlja unosim u Audacityju (on to zove labelama), koje bih na kraju montiranja izvezao. Tako sam objavio prvu epizodu na taj način, da bih za poslednje dve skriptu dodao opcije da mi radi sve: konvertuje Audacity labele u format koji ffmpeg prepoznaje, konvertuje audio u mono od 64 Kbit/s, ubaci nazive poglavlja, naziv samog podkasta, naziv i artwork epizode i kreira finalni MP3 fajl spreman za upload u Simplecast. Kako je prva verzija koristila Python za konverziju labela, sada sam na osnovu prvog napravio i drugi skript koji koristi isključivo bash komande za čitav postupak, oba ih možete naći u ovom Github repositoryju.
Na ovaj način sam sebi skratio vreme potrebno za objavljivanje jedne epizode po završetku montaže, veličina krajnjeg MP3 fajla je za desetak procenata veća nego kada je Firecast napravi, verovatno je njegov ugrađeni LAME enkoder bolji po tom pitanju od ffmpega, ili ja tu stvar ne umem da podesim. Za budućnost ostaje da dodam mogućnost da se i svakom poglavlju dodeli posebna slika, a kada to uradim već ću vas nas ovom istom mestu blagovremeno obavestiti.
