Once in Vilnius: bendruomenės medijos platforma, pelniusi aukso apdovanojimą Hamburge.
Vilniaus 700-mečio iniciatyvai per 6 mėnesius sukūrėme pilną naudotojų turinio (UGC) ekosistemą: Flutter programėlę su vaizdo kūrimo įrankiais, filtrais ir socialinėmis funkcijomis bei backend infrastruktūrą medijos apdorojimui ir moderavimui. Platforma subūrė 12 000+ naudotojų, surinko 35 000+ nuotraukų ir vaizdo įrašų, o 2024 m. pelnė „Intermedia-Globe Gold Award" apdovanojimą „WorldMediaFestivals" festivalyje Hamburge.
MediaPulsas kuria bendruomenių medijos ir naudotojų turinio (UGC) platformas Lietuvoje - nuo miestų švenčių iki prekės ženklų kampanijų.

KlientasApie projektą
2023-iaisiais Vilnius šventė 700 metų jubiliejų, o „Once in Vilnius" tapo viena išradingiausių skaitmeninių šventės iniciatyvų: programėlė kvietė vilniečius, turistus ir miesto mylėtojus fiksuoti autentiškas akimirkas - kelti nuotraukas, trumpus vaizdo įrašus ir asmenines istorijas į nuolat augantį bendruomenės archyvą.
Platforma veikė kaip skaitmeninio pasakojimo ekosistema su socialinio tinklo patirtimi: filtrai, lipdukai, muzika, patiktukai ir žinutės. Geriausią turinį atrinko profesionalūs kino kūrėjai - jis tapo dokumentinio filmo „Once Upon a Time in Vilnius" dalimi, o pats projektas 2024 m. gegužę pelnė aukso apdovanojimą tarptautiniame „WorldMediaFestivals" konkurse Hamburge.
Kaip veikia sistema
Naudotojo turinio kelias nuo filmavimo iki bendruomenės srauto - ir toliau, iki dokumentinio filmo:
- Naudotojas
- Filmavimas programėlėje
- Filtrai ir lipdukai
- Įkėlimas
- Apdorojimas fone
- Moderavimas
- Bendruomenės srautas
- Patiktukai ir žinutės
Iššūkis
Socialinio tinklo lygio patirtis su griežtu, nekilnojamu terminu - šventės data nelaukia:
- Dideli naudotojų nuotraukų ir vaizdo įrašų srautai turi būti apdorojami patikimai
- Vaizdo kūrimo įrankiai - filtrai, lipdukai, muzika - turi veikti pačioje programėlėje
- Srautas privalo krautis akimirksniu net su tūkstančiais vaizdo įrašų
- Patiktukai ir žinutės - realiu laiku, kaip įprasta socialiniuose tinkluose
- Turinys turi būti sklandus įvairiuose įrenginiuose ir tinklo sąlygomis
- Backend privalo saugoti ir apdoroti didelius medijos failus augančiu masteliu
Kodėl tai buvo sudėtinga: techniniai iššūkiai
Nekilnojamas terminas
700-metis neatsidės, jei vėluos programėlė. Flutter viena kodo baze abiem platformoms leido per 6 mėnesius pasiekti tai, kam native keliu būtų prireikę beveik dvigubai daugiau resursų.
Vaizdo redagavimas telefone
Filtrai, lipdukai ir muzikos uždėjimas vyksta pačiame įrenginyje - be siuntimo į serverį. Tai reikalavo kruopštaus darbo su GPU spartinimu ir atminties valdymu senesniuose telefonuose.
Srauto greitis
Tikslas - jausmas kaip „Instagram". Pasiekta trimis technikomis: išankstinis srauto turinio užkrovimas (preloading), progresyvus vaizdų krovimas ir agresyvus kešavimas - vidutinis srauto užkrovimas <1,2 s.
Įkėlimai silpnu ryšiu
Šventės minioje mobilus ryšys perkrautas. Įkėlimas vyksta fone, dalimis, su automatiniu pratęsimu nutrūkus ryšiui - naudotojas tęsia naršymą, o turinys pasiekia serverį pats.
Turinio moderavimas
Viešoje miesto platformoje turinys negali pasirodyti nepatikrintas. Sukūrėme moderavimo eilę komandai: peržiūra, patvirtinimas arba atmetimas prieš patenkant į bendrą srautą.
Piko aktyvumas
Renginių vakarais aktyvumas šokteldavo dešimtimis kartų. Medijos apdorojimas atskirtas nuo įkėlimo priėmimo - eilės sugeria pikus, o srautas naudotojams nesulėtėja.
„Šventės data - vienintelis terminas, kurio neįmanoma nukelti. Architektūrą rinkomės ne pagal madą, o pagal tai, kas leis patikimai startuoti laiku ir atlaikyti minios aktyvumą."
- MediaPulsas architektų komanda
Sprendimas
Per 6 mėnesius pristatėme pilną bendruomenės medijos ekosistemą:
- Flutter programėlė iOS ir Android iš vienos kodo bazės
- Vaizdo kūrimo studija programėlėje: filtrai, lipdukai, ikonos, muzika
- Bendruomenės srautas su išankstiniu užkrovimu ir kešavimu
- Socialinės funkcijos: profiliai, patiktukai, žinutės
- Moderavimo įrankiai turinio komandai
- Backend medijos saugyklai, apdorojimui ir API (PHP, Drupal, Vue.js)
Architektūra ir inžineriniai sprendimai
Mobilioji dalis - Flutter: viena kodo bazė abiem platformoms buvo vienintelis realistiškas kelias per 6 mėnesius pasiekti socialinio tinklo lygio patirtį. Medijos našumui skirtas atskiras inžinerinis sluoksnis: išmanieji medijos krautuvai (smart loaders), progresyvus vaizdų ir vaizdo įrašų krovimas, srauto turinio išankstinis užkrovimas ir kešavimas pakartotiniams peržiūrėjimams - todėl slinkimas išlieka sklandus net esant dideliam turinio kiekiui.
Backend pastatytas su PHP, Drupal ir Vue.js: Drupal davė brandžius turinio valdymo ir moderavimo įrankius be kūrimo nuo nulio, o REST API jungė programėlę su medijos saugykla. Įkėlimų priėmimas atskirtas nuo apdorojimo - konvertavimas ir miniatiūrų generavimas vyksta fone, tad piko valandomis naudotojų patirtis nenukenčia.
Architektūriniai pasirinkimai: kodėl būtent taip
Kodėl Flutter, o ne native?
Terminas buvo nekilnojamas, o reikėjo abiejų platformų su vienoda patirtimi. Flutter viena kodo baze davė beveik dvigubą greitį, o socialinio tinklo tipo sąsajai - pilną vizualinę kontrolę.
Kodėl srauto išankstinis užkrovimas ir progresyvus krovimas?
Bendruomenės platformoje pirmas įspūdis - srauto greitis. Užkraunant turinį anksčiau, nei naudotojas jį pasiekia, ir rodant vaizdus palaipsniui, pasiektas <1,2 s vidutinis srauto užkrovimas.
Kodėl moderavimas prieš publikavimą, o ne po?
Miesto vardu veikiančioje viešoje platformoje netinkamas turinys - reputacijos rizika savivaldybei. Moderavimo eilė prieš srautą kainuoja kelias minutes, bet apsaugo visą projektą.
Kodėl medijos apdorojimas atskirtas nuo įkėlimo?
Konvertavimas ir miniatiūros - sunkios operacijos. Jei jos vyktų įkėlimo metu, piko valandomis naudotojai lauktų. Fono eilė sugeria apkrovą, o įkėlimas naudotojui baigiasi akimirksniu.
Kodėl Drupal backend pagrindui?
Turinio komandai reikėjo brandžių moderavimo ir administravimo įrankių nuo pirmos dienos. Drupal juos davė iš karto - kurti nuo nulio per 6 mėnesių terminą būtų buvę neatsakinga.
Technologijos
- Flutter (Dart)
- PHP
- Drupal
- Vue.js
- REST API
- Medijos saugykla
- Išmanieji medijos krautuvai
- Progresyvus krovimas
- Kešavimas
- Fono įkėlimai
- Moderavimo įrankiai
- Filtrai ir efektai
Rezultatai
Platforma tapo gyvu miesto šventės archyvu ir pelnė tarptautinį pripažinimą:
Ko išmokome
- Nekilnojamas terminas - geriausias architektūros filtras: lieka tik tai, kas tikrai būtina startui
- Medijos našumo inžinerija (preloading, kešavimas) lemia UGC platformos sėkmę labiau nei funkcijų kiekis
- Moderavimas turi būti suprojektuotas kartu su įkėlimu, o ne pridėtas vėliau
- Brandi turinio valdymo platforma backend pagrinde sutaupo mėnesius, kai terminas spaudžia
Kam tinka panašus sprendimas
- Miestų jubiliejams ir festivaliams
- Savivaldybių bendruomenių iniciatyvoms
- Prekės ženklų UGC kampanijoms
- Renginių ir konferencijų platformoms
- Medijos ir TV projektams
- Muziejams ir kultūros įstaigoms
- Bendruomenių socialinėms platformoms
- Dokumentikos ir archyvavimo projektams
Dažniausi klausimai
Kas buvo „Once in Vilnius" programėlė? +
Kokius rezultatus pasiekė platforma? +
Kaip užtikrintas greitis su tūkstančiais vaizdo įrašų? +
Ar panaši platforma tiktų mūsų miestui, renginiui ar prekės ženklui? +
Kas sukūrė „Once in Vilnius" programėlę? +
Turite idėją? Paverskime ją produktu
Papasakokite, ką norite pasiekti - per 48 valandas gausite apimties ir biudžeto įvertinimą bei mūsų siūlymą, nuo ko pradėti. Nemokamai ir be įsipareigojimų.
mediapulsas

