mHub
Otvorena platforma · Addon Protocol v2 · Browser API

Svaka ideja. Svaki ekran.

Napravi radio aplikaciju za jedno popodne.

mHub je otvorena platforma koja foldere jednostavnih fajlova i obične sajtove pretvara u aplikacije za telefone, televizore i desktop računare. Ne moraš biti programer: ako umeš da opišeš šta želiš, AI to može da napravi, a mHub mu daje mesto gde radi.

Radi u Vypn-u i svakom mHub pregledaču Otvoreni kod, MIT Bez koraka izgradnje, bez naloga Radi na telefonima, televizorima i desktop računarima
Vuma na televizoru: istaknuta DW emisija iznad redova dokumentaraca i poslovnih videa, sa katalozima dodatka duž vrha ekrana.
Vuma, mHub aplikacija, na televizoru. Sve na ovom ekranu dolazi iz jednog dodatka: DW.
Koncept

Jedna platforma, tri dela.

mHub nije jedna aplikacija. To su tri dela koja se uklapaju, i svaki od njih je otvoren. Dva su temelji: format sadržaja i API pregledača. Treći deo su aplikacije, a svaka od njih stoji na jednom temelju ili na oba.

01

Aplikacije

Ono što zaista koristiš. Vuma pretvara dodatke u jedan ekran za pregledanje, a druge aplikacije nose po jednu ideju na svaki ekran u kući. Sve su to veb aplikacije: ništa ne treba instalirati. Pogledaj aplikacije

02

Sadržaj: dodaci

Dodatak je izvor sadržaja: filmovi, radio stanice, podkasti, kursevi. Ispod haube to je folder malih tekstualnih fajlova na bilo kom veb hostingu, opisan specifikacijom Addon Protocol v2. AI može da ti ga napiše. Pogledaj protokol

03

Moći: window.mhub

Otvori običan sajt unutar mHub aplikacije i on može ono što pregledač nikad ne dozvoljava: da čita podatke odasvud, da preživi mrtav domen, da živi na tvom televizoru. Jedan imenski prostor, jedan script tag: mHub Browser API. Pogledaj API

Prvi deo · Aplikacije

Naši favoriti. Svi rade uživo.

Vuma stoji na oba temelja; aplikacije pored nje pokazuju dokle može da stigne i samo jedan temelj. Pet aplikacija, pet različitih ideja, i svaka od njih je dobra polazna tačka.

Vuma

Kada Vuma dobije dodatke, pretvara ih u jedan ekran za pregledanje: svaki katalog koji tvoji dodaci nude, pretraga kroz sve njih, biblioteka i plejer koji nastavlja tamo gde je reprodukcija stala. To je jedna veb aplikacija koja radi i na telefonima, i na televizorima, i na desktop računarima, i sama se snalazi sa dodirom, daljinskim upravljačem i mišem.

Stoji na oba temelja: dodaci donose sadržaj, a unutar mHub pregledača Browser API dodaje moći koje obična stranica nikad nema. Možeš je čak postaviti i na sopstvenu stranicu, sa svojim dodacima i svojim imenom: jedan HTML fajl.

Vuma na telefonu: istaknuta DW emisija sa detaljima i dugmadi za moju listu iznad reda TV kanala uživo.
DW dodatak u Vumi na telefonu: istaknuti video vesti i lista klipova koja se skroluje.

Waves

Radio stanice, podkasti i besplatne audio-knjige kao jedna aplikacija. Waves je jedan HTML fajl nad istim Vuma buildom: pet audio dodataka, tirkizni akcenat i addonManager: "fixed", pa su izvori zadati, a korisnik ih samo uključuje i isključuje. Pogledaj njen izvorni kod: stranica je ceo tutorijal.

Waves: podkast u prvom planu iznad redova SomaFM radio stanica, sa tirkiznim logom talasa u bočnoj traci.
Waves: SomaFM, Radio Browser, podkasti i audio-knjige, tirkizno na tamnom. Jedan HTML fajl na Vumi.

Junior

Dečja televizija. Jedan dodatak, jarke boje, nemački od prvog ekrana (locale: "de") i addonManager: "hidden": sa kauča nema šta pogrešno da se podesi. I ovo je jedan HTML fajl nad Vuma buildom.

Junior: KiKA animacija u prvom planu iznad redova dečjih emisija, na nemačkom, sa žutim logom zvezde u bočnoj traci.
Junior: KiKA dodatak i ništa više, sa zvezdom na vratima.

Mediathek

Dodatak su podaci; ono što neko napravi na njemu je aplikacija. Mediathek je jedan HTML fajl direktno na dodatku ard-mediathek, bez Vume ispod: redovi, pretraga, serije sa epizodama, titlovi i plejer koji pamti dokle je stiglo gledanje. Dodatak dohvata podatke, stranica se brine o izgledu.

Mediathek: redovi ARD videa i serija sa naslovima, datumima i trajanjem, i polje za pretragu.
Mediathek, jedan HTML fajl nad jednim dodatkom, bez ičeg svog što treba hostovati.

Glance

Drugi temelj sam za sebe: Glance ne koristi nijedan dodatak. Jedan HTML fajl na Browser API-ju, koji na jedan miran ekran donosi vremensku prognozu uživo, naslove vesti, tržišne cene i status tvojih servera. U običnom pregledaču i dalje radi, samo sa manje mogućnosti; unutar mHub aplikacije svaka pločica oživi.

Glance: sat, vremenska prognoza, tržišne cene i naslovi vesti kao mirne pločice na jednom ekranu.
Glance, jedan HTML fajl koji donosi vremensku prognozu, naslove i cene uživo.
Šta možeš da napraviš

Jedna ideja, jedan folder, svaki ekran.

Sve što ima listu može biti dodatak, a sve što pregledač odbija da uradi može biti sajt unutar mHub-a. Ovo su ideje koje bismo voleli da neko napravi, i od svake te deli samo jedan prompt: izaberi jednu i ona završava u AI promptu niže na stranici.

Dodatak: folder JSON fajlova, hostovan bilo gde ili na mhub.mx Sajt: jedna veb stranica na Browser API-ju Aplikacija: Vuma sa tvojim dodacima i tvojim imenom

Gledaj

Dodatak

Tvoja regionalna TV stanica

Sve što stanica objavi na internetu, u redovima po emisijama, sa večernjim vestima na početku.

Dodatak

Filmski festival

Program sa trejlerima i sinopsisima, po danima, salama i selekcijama.

Dodatak

Nemi film

Filmovi u javnom domenu sa Internet Archive-a, poređani po decenijama i rediteljima.

Dodatak

Tvoj sportski klub

Najbolji momenti, cele utakmice i raspored sezone kao katalog uživo.

Dodatak

Gradske kamere uživo

Javne veb kamere jednog grada, luka, trg, planina, kao kanali uživo.

Dodatak

Sednice gradske skupštine

Snimci i prenosi uživo skupštine tvog grada, po sednicama i tačkama dnevnog reda.

Slušaj

Dodatak

Tvoje radio stanice

Deset stanica koje zaista slušaš, sa logoima, redosledom koji ti odgovara.

Dodatak

Jedna mreža podkasta

Sve emisije jedne mreže iz njenih RSS fidova, najnovije epizode prve.

Dodatak

Audio-knjige po autoru

LibriVox snimci jednog autora, poglavlja kao epizode, sa nastavkom slušanja.

Dodatak

Priče za laku noć

Kratke audio priče za decu, sa mirnom naslovnom slikom za svaku priču i bez reklama.

Dodatak

Verska zajednica

Službe i propovedi tvoje crkve, džamije ili zajednice, uživo i snimljene.

Aplikacija

Aplikacija jedne stanice

Waves sa strimovima i podkastima jedne stanice i njenim bojama. Jedan HTML fajl.

Uči

Dodatak

Predavanja jednog univerziteta

Javni snimci predavanja, po fakultetu i semestru, na televizoru umesto na laptopu.

Dodatak

Kurs jezika

Lekcije kao epizode, po redu, sa audio vežbama pored videa.

Dodatak

Obilasci muzeja

Video i audio vodiči jednog muzeja, sala po sala.

Dodatak

Škola kuvanja

Video recepti po vrsti jela i kuhinji, sa sastojcima u opisu.

Sajt

Pregledač arhive

Prijatno lice za Archive.org ili Project Gutenberg: pregledaj, pretražuj i čitaj kao u aplikaciji.

Dodatak

Predavanja sa jedne konferencije

Svako snimljeno predavanje jedne serije konferencija, po godini i temi.

Dom i porodica

Sajt

Porodični ekran

Vremenska prognoza, naslovi vesti i cene stvari koje te zanimaju, na jednom mirnom ekranu. Ovaj smo napravili mi: to je Glance.

Sajt

Kontrolna tabla za dom

Svetla, NAS, štampač, ruter. Pregledači odbijaju takve lokalne zahteve; mHub aplikacija ih šalje umesto tebe.

Sajt

Zid kamera

Tvoje sopstvene kamere iz lokalne mreže, kao mozaik na televizoru.

Dodatak

Porodični foto-ram

Fotografije sa tvog servera kao katalog slika: televizor postaje ram.

Aplikacija

Dečja televizija

Jedan dodatak, jarke boje, sa kauča nema šta pogrešno da se podesi. To je Junior.

Dodatak

Crtaći sa jednog kanala

Besplatne epizode jednog dečjeg kanala, po emisijama, bezbedno za decu.

Alati

Sajt

Čitač vesti

Učitaj bilo koji fid direktno sa izvora. Obični pregledači to blokiraju; unutar mHub-a jednostavno radi, i lepo se čita sa kauča.

Sajt

Praćenje cena

Proveravaj cene i dostupnost u prodavnicama, vodi listu za praćenje, vidi odgovor na bilo kom ekranu.

Sajt

Tabla statusa servera

Tvoje mašine, njihovi diskovi i servisi, kao pločice koje pocrvene pre nego što iko pozove.

Dodatak

YouTube kanal, razrešen

Resolver dodatak: nalepi kanal i dobij njegove video snimke kao katalog koji se može pustiti.

Dodatak

Titlovi za jedan jezik

Dodatak za titlove na jednom jeziku, koji odgovara na imdb ID-jeve, iz otvorenog izvora titlova.

Dodatak

Gde se naslov strimuje

Ukucaj film i vidi gde se prikazuje u tvojoj zemlji. Dodatak za stavke nad otvorenom bazom podataka.

Već imaš nešto od ovoga? Objavi to na mhub.mx: pregledamo, hostujemo pod tvojim imenom i prikazujemo u repozitorijumu zajednice.

Prvi deo · Napravi Vumu svojom

Tvoja aplikacija je jedan HTML fajl.

Waves i Junior su upravo to: učitaj Vuma build, daj mu element, pozovi mount. Ovaj fajl, na bilo kom statičkom hostingu, gotova je aplikacija sa tvojim dodacima, tvojim imenom i tvojim bojama, i sam prati nova izdanja Vume. Bez koraka izgradnje, bez serverskog koda, bez naloga.

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport"
  content="width=device-width, initial-scale=1.0, viewport-fit=cover, user-scalable=no">
<title>My App</title>
<link rel="stylesheet" href="https://vuma.mx/latest/style.css">
</head>
<body>
<div id="app"></div>
<script type="module">
  import { mount } from "https://vuma.mx/latest/app.js";
  mount({
    addons: [
      "https://www.mhub.mx/radio-and-podcasts",
      "https://www.mhub.mx/public-domain",
    ],
    brand: { name: "My App", colors: { accent: "#00AAFF" } },
  });
</script>
</body>
</html>

Dodatak je URL njegovog manifesta. Oni koji su hostovani ovde navedeni su u indeksu dodataka, a AI ti može napraviti novi.

Svaka opcija za mount, i odakle dolaze fajlovi, dokumentovana je u samoj aplikaciji: Kako da napraviš sopstvenu aplikaciju. Stiže uz build, pa opisuje verziju koju upravo učitavaš, a ne onu prema kojoj je ova stranica pisana.

Drugi deo · Addon Protocol v2

Dodatak je folder JSON fajlova.

Dodatak je izvor sadržaja: filmovi, radio stanice, podkasti, recepti, kursevi. Postavi folder bilo gde na vebu, dodaj njegovu adresu u aplikaciju, i sve što je u njemu pojaviće se tamo, spremno za pregledanje. Verziji 2 protokola ne treba server: svaki endpoint može biti statički fajl na bilo kom CDN-u. Svaki postojeći v1 dodatak i dalje radi; aplikacije prevode između te dve verzije, a v1 ostaje podržan.

Statično na prvom mestu

Svi endpointi su GET, svi mogu da se keširaju, svi mogu da se hostuju kao obični fajlovi. Jedan opcioni POST za sistem zadataka.

/mhub-addon.json
/catalog/{type}/{catalogId}.json
/item/{type}/{id}.json
/source/{type}/{id}.json

Modularno

Katalozi, detalji stavki, izvori, resolveri i titlovi su zasebni resursi. Jedan dodatak može da pruža sve njih ili samo jedan.

"resources": ["catalog",
  "item", "source",
  "resolve", "subtitle"]

Client-fetch zadaci

Endpoint može da odgovori zadatkom umesto podacima. Aplikacija tada dohvata podatke sa korisnikovom IP adresom, pa statički dodatak radi i sa geo-blokiranim API-jima.

// dodatak ostaje statičan,
// klijent obavlja poziv

mhub-addon.json

Minimalni dodatak čine jedan manifest i jedan fajl kataloga. Otpremi oba na bilo koji statički hosting i radi. Specifikacija je OpenAPI 3.1 sa generisanim TypeScript tipovima i klijentskom bibliotekom bez zavisnosti, pod MIT licencom, na GitHub-u.

{ "id": "my-movies", "name": "My Movies", "specVersion": 2,
  "resources": ["catalog"], "types": ["video"],
  "catalogs": [{ "id": "all", "name": "All", "type": "video" }] }
Drugi deo · Pravi uz AI

Opiši. AI napravi.

Ceo format dodataka staje u jedan prompt, i nikad ne moraš da ga čitaš. Kopiraj prompt, dodaj svoju ideju, i AI odgovara folderom fajlova. Otpremi ih bilo gde i tvoj dodatak radi.

01

Kopiraj prompt

Upućuje AI na specifikaciju. Radi sa svakim asistentom koji ume da čita linkove, kao što su ChatGPT ili Claude.

02

Dodaj svoju ideju

„Moje omiljene radio stanice.“ „Svaki film jednog reditelja.“ „Javna predavanja mog univerziteta.“ Sve što ima listu.

03

Otpremi fajlove

Odgovara bilo koji statički hosting, GitHub Pages je besplatan. Dodaj adresu u mHub aplikaciju i pregledaj sopstveni dodatak.

Pročitaj specifikaciju mHub Addon Protocol v2 na
https://raw.githubusercontent.com/mediahubmx/protocol/main/openapi.yaml
i napravi mi dodatak. Dodatak je folder statičkih JSON fajlova,
spreman za otpremanje na bilo koji veb hosting. Odgovori sa svakim fajlom:
prvo njegova puna putanja, zatim njegov kompletan sadržaj.

Moj dodatak: [ovde opiši svoju ideju]

Ako tvoj asistent ne može da otvara linkove, umesto toga nalepi fajl specifikacije u čet. Specifikacija i kompletni primeri dodataka nalaze se na GitHub-u.

Treći deo · mHub Browser API

Šta tvoj sajt može unutar mHub-a

Sve živi u jednom imenskom prostoru: window.mhub, i svaki host pruža celo jezgro. Jednom proveri da li imenski prostor postoji, pa ga samo pozivaj. Bez SDK-a, bez koraka izgradnje, bez naloga: jedan script tag je cela postavka, a možeš ga hostovati i sam.

<script src="https://mhub.mx/mhub.js"></script>
Proveravam ovaj pregledač…
Host
…
Uređaj
…
Mogućnosti
…

API već radi u aplikacijama i stiže sa njihovim izdanjima. Piši za njega već danas i tvoja stranica radi u svakom slučaju: gde nema hosta, window.mhub jednostavno ne postoji i tvoj sajt ostaje običan sajt. Nabavi pregledač koji ga ima.

mhub.fetch

Dohvati bilo šta. Bez CORS-a, i sa zaglavljima zahteva koja pregledač inače zadržava za sebe.

// sa drugog porekla, čitljivo
const r = await mhub.fetch(url);

mhub.openStream

Nekim medijima trebaju sopstvena zaglavlja zahteva da bi se pustili. Jedan poziv, i host bira pravi put na svakoj platformi.

const s = await mhub.openStream(
  { url, headers });
video.src = s.url;

mhub.storage

Skladište ključ/vrednost koje prati tvoj sajt, a ne domen na kom se slučajno nalazi. Bez upita, bez podešavanja.

await mhub.storage.set(k, v);

mhub-site.json

Jedan domen padne, a tvoj sajt se i dalje učitava. Postavi jedan mali fajl na svaki domen; pregledač ga pronalazi, proverava tvoja ogledala i sam prelazi na ispravno. Bez koda.

{ "id": "mysite",
  "endpoints": [
    "https://a.example",
    "https://b.example" ] }

mhub.setLinks

Pločica na početnom ekranu pregledača. Put nazad do tvog sajta, koji ostaje i između poseta.

mhub.setLinks([
  { id, name, icon, url }]);

mhub.setSearch

Adresna traka postaje pretraga tvog sajta. Upiti i predlozi idu direktno na tvoju stranicu.

mhub.setSearch({ placeholder,
  onQuery, onSuggest });

mhub.device + capabilities

Znaj gde radiš i šta host može, od telefona do televizora, pre prvog iscrtavanja.

if (mhub.device.isTV) tvUi();

…i deklaracije aplikacije

Stranica koja radi kao aplikacija govori hostu šta sama obrađuje: sopstvenu navigaciju unazad (setBackHandler), plejer preko celog ekrana (setImmersive) i izlaz (exit); meta tag u HTML-u kaže da je to aplikacija napravljena za daljinski upravljač. Svaki član, uz model dozvola i sistem ogledala, opisan je u API referenci.

mhub.setBackHandler(depth);
mhub.setImmersive(true);
<meta name="mhub" content="app dpad">
Zajednica

Objavljuju ih ljudi poput tebe.

Zasad 56 dodataka zajednice od 31 autora. Prijavi se imejlom, otpremi folder kao zip ili poveži onaj koji sam hostuješ, i čim prođe pregled, nalazi se na mhub.mx/@you/addon, u listi zajednice i u repozitorijumu zajednice.

Napravi nešto. Veliko ili malo.

API referenca pokriva svaki član, model dozvola i sistem ogledala. Specifikacija protokola dolazi sa kompletnim primerima dodataka koje možeš kopirati.