mHub
Otvorena platforma · Addon Protocol v2 · Browser API

Svaka ideja. Svaki zaslon.

Napravi radijsku aplikaciju za jedno popodne.

mHub je otvorena platforma koja mape jednostavnih datoteka i obične web stranice pretvara u aplikacije za mobitele, televizore i računala. Ne moraš biti programer: ako znaš opisati što želiš, AI to može izraditi, a mHub tome daje mjesto za rad.

Radi u pregledniku Vypn i u svakom mHub pregledniku Otvoreni kod, MIT Bez kompajliranja, bez računa Radi na mobitelima, televizorima i računalima
Vuma na televizoru: istaknuta DW emisija iznad redova dokumentaraca i poslovnih videa, s katalozima dodatka na vrhu.
Vuma, mHub aplikacija, na televizoru. Sve na ovom zaslonu dolazi iz jednog dodatka: DW.
Koncept

Jedna platforma, tri dijela.

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

01

Aplikacije

Ono što zapravo koristiš. Vuma pretvara dodatke u jedan zaslon za pregledavanje, a svaka od drugih aplikacija nosi po jednu ideju na svaki zaslon u kući. Sve su to web aplikacije: ništa se ne instalira. Pogledaj aplikacije

02

Sadržaj: dodaci

Dodatak je izvor sadržaja: filmovi, radijske postaje, podcasti, tečajevi. Iznutra je to mapa malih tekstualnih datoteka na bilo kojem web hostingu, opisana protokolom Addon Protocol v2. AI ti ga može napisati. Pogledaj protokol

03

Mogućnosti: window.mhub

Otvori običnu web stranicu unutar mHub aplikacije i ona može ono što preglednik nikad ne dopušta: čitati podatke s bilo kojeg mjesta, preživjeti mrtvu domenu, živjeti na tvom televizoru. Jedan imenski prostor, jedan script tag: mHub Browser API. Pogledaj API

Prvi dio · Aplikacije

Naše omiljene. Sve već rade.

Vuma stoji na oba temelja; aplikacije pokraj nje pokazuju dokle seže samo jedan temelj. Pet aplikacija, pet različitih ideja, i svaka je od njih mjesto od kojeg možeš krenuti.

Vuma

Daj Vumi dodatke i ona ih pretvara u jedan zaslon za pregledavanje: svaki katalog koji tvoji dodaci nude, pretraživanje kroz sve njih, biblioteka i reproduktor koji nastavlja ondje gdje je stao. To je jedna web aplikacija koja jednako radi na mobitelima, televizorima i računalima, a sama se snalazi s dodirom, daljinskim upravljačem i pokazivačem.

Stoji na oba temelja: dodaci donose sadržaj, a unutar mHub preglednika Browser API dodaje mogućnosti kakve obična stranica nikad nema. Možeš je čak postaviti na vlastitu stranicu, sa svojim dodacima i svojim imenom: jedna HTML datoteka.

Vuma na mobitelu: istaknuta DW emisija s gumbima za detalje i moj popis iznad reda TV kanala uživo.
Dodatak DW u Vumi na mobitelu: istaknuti video vijesti i popis isječaka koji se može pomicati.

Waves

Radijske postaje, podcasti i besplatne audioknjige kao jedna aplikacija. Waves je jedna HTML datoteka na istom buildu Vume: pet audio dodataka, tirkizni naglasak i addonManager: "fixed", pa su izvori zadani, a korisnik ih samo uključuje i isključuje. Pogledaj izvorni kod stranice: on je cijeli vodič.

Waves: istaknuti podcast iznad redova SomaFM radijskih postaja, s tirkiznim logotipom vala u bočnoj traci.
Waves: SomaFM, Radio Browser, podcasti i audioknjige, tirkizno na tamnom. Jedna HTML datoteka na Vumi.

Junior

Dječja televizija. Jedan dodatak, žive boje, njemački od prvog zaslona (locale: "de") i addonManager: "hidden": s kauča se ništa ne može krivo podesiti. I ovo je jedna HTML datoteka na buildu Vume.

Junior: istaknuti KiKA crtić iznad redova dječjih emisija, na njemačkom, sa žutim logotipom zvijezde u bočnoj traci.
Junior: dodatak KiKA i ništa drugo, sa zvijezdom na vratima.

Mediathek

Dodatak su podaci; ono što netko na njemu izgradi je aplikacija. Mediathek je jedna HTML datoteka izravno na dodatku ard-mediathek, bez Vume ispod: redovi, pretraživanje, serije s epizodama, titlovi i reproduktor koji pamti gdje je stao. Dodatak dohvaća podatke, stranica se brine za izgled.

Mediathek: redovi ARD videa i serija s naslovima, datumima i trajanjem, te polje za pretraživanje.
Mediathek, jedna HTML datoteka na jednom dodatku, bez ičega vlastitog što treba hostati.

Glance

Drugi temelj sam za sebe: Glance uopće ne koristi dodatke. Jedna HTML datoteka na Browser API-ju, koja na jedan miran zaslon donosi vremensku prognozu, naslove vijesti, tržišne cijene i stanje tvojih vlastitih poslužitelja, sve uživo. U običnom pregledniku radi sa smanjenim mogućnostima; unutar mHub aplikacije oživi svaka pločica.

Glance: sat, vremenska prognoza, tržišne cijene i naslovi vijesti kao mirne pločice na jednom zaslonu.
Glance, jedna HTML datoteka koja uživo donosi vremensku prognozu, naslove vijesti i cijene.
Što možeš napraviti

Jedna ideja, jedna mapa, svaki zaslon.

Sve što ima popis može biti dodatak, a sve što preglednik odbija učiniti može biti stranica unutar mHuba. Ovo su ideje koje bismo voljeli vidjeti ostvarene, i svaka je udaljena samo jedan prompt: odaberi jednu i ona završi u AI promptu niže na stranici.

Dodatak: mapa JSON datoteka, hostana bilo gdje ili na mhub.mx Stranica: jedna web stranica na Browser API-ju Aplikacija: Vuma s tvojim dodacima i tvojim imenom

Gledaj

Dodatak

Tvoja regionalna TV postaja

Sve što postaja objavi na internetu, u redovima po emisijama, s večernjim vijestima na vrhu.

Dodatak

Filmski festival

Program s najavama i sažecima, za pregledavanje po danima, dvoranama i programskim sekcijama.

Dodatak

Nijemi film

Filmovi u javnom vlasništvu s Internet Archivea, poredani po desetljeću i redatelju.

Dodatak

Tvoj sportski klub

Sažeci utakmica, cijele utakmice i raspored sezone kao katalog uživo.

Dodatak

Gradske kamere uživo

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

Dodatak

Sjednice gradskog vijeća

Snimke i prijenosi uživo tvog gradskog vijeća, po sjednicama i točkama dnevnog reda.

Slušaj

Dodatak

Tvoje radijske postaje

Deset postaja koje zaista slušaš, s logotipima, redoslijedom koji ti odgovara.

Dodatak

Jedna podcast mreža

Sve emisije jedne mreže iz njezinih RSS feedova, najnovije epizode na vrhu.

Dodatak

Audioknjige po autoru

LibriVox snimke jednog autora, poglavlja kao epizode, s nastavkom slušanja.

Dodatak

Priče za laku noć

Kratke audio priče za djecu, sa smirenom naslovnicom za svaku priču i bez reklama.

Dodatak

Vjerska zajednica

Obredi i predavanja tvoje crkve, džamije ili zajednice, uživo i snimljeni.

Aplikacija

Vlastita aplikacija postaje

Waves, sa streamovima i podcastima jedne postaje i njezinim bojama. Jedna HTML datoteka.

Uči

Dodatak

Predavanja jednog sveučilišta

Javne snimke predavanja, po fakultetu i semestru, na televizoru umjesto na laptopu.

Dodatak

Tečaj jezika

Lekcije kao epizode, redom, s audio vježbama uz videe.

Dodatak

Obilasci muzeja

Video i audio vodiči muzeja, prostoriju po prostoriju.

Dodatak

Škola kuhanja

Videorecepti po slijedu jela i kuhinji, sa sastojcima u opisu.

Stranica

Preglednik arhiva

Prijazno sučelje za Archive.org ili Project Gutenberg: pregledavaj, pretražuj i čitaj kao u aplikaciji.

Dodatak

Predavanja s jedne konferencije

Svako snimljeno predavanje jednog niza konferencija, po godini i tematskoj cjelini.

Dom i obitelj

Stranica

Obiteljski zaslon

Vremenska prognoza, vijesti i cijene stvari do kojih ti je stalo, na jednom mirnom zaslonu. Ovaj smo napravili mi: to je Glance.

Stranica

Kontrolna ploča za dom

Svjetla, NAS, pisač, router. Preglednici odbijaju takve lokalne zahtjeve; mHub aplikacija ih šalje umjesto tebe.

Stranica

Zid kamera

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

Dodatak

Obiteljski okvir za fotografije

Fotografije s tvog vlastitog poslužitelja kao katalog slika: televizor postaje okvir.

Aplikacija

Dječja televizija

Jedan dodatak, žive boje, s kauča se ništa ne može krivo podesiti. To je Junior.

Dodatak

Crtići s jednog kanala

Besplatne epizode jednog dječjeg kanala, po emisijama, bez brige ih možeš prepustiti djeci.

Alati

Stranica

Čitač vijesti

Povuci bilo koji feed izravno s izvora. Obični preglednici to blokiraju; unutar mHuba to jednostavno radi, a s kauča se ugodno čita.

Stranica

Praćenje cijena

Provjeravaj cijene i dostupnost u trgovinama, vodi popis praćenja, vidi odgovor na bilo kojem zaslonu.

Stranica

Ploča stanja poslužitelja

Tvoja vlastita računala, njihovi diskovi i servisi, kao pločice koje pocrvene prije nego što itko nazove.

Dodatak

YouTube kanal kao katalog

Resolver dodatak: zalijepi kanal i dobij njegove videe kao katalog koji se može reproducirati.

Dodatak

Titlovi za jedan jezik

Dodatak za titlove na jednom jeziku, odgovara za imdb id-ove, iz otvorenog izvora titlova.

Dodatak

Gdje se naslov može gledati

Upiši film i vidi gdje se prikazuje u tvojoj zemlji. Dodatak za stavke na temelju otvorene baze podataka.

Već imaš nešto od ovoga? Objavi to na mhub.mx: pregledat ćemo, hostati pod tvojim imenom i uvrstiti u repozitorij zajednice.

Prvi dio · Prilagodi Vumu sebi

Tvoja vlastita aplikacija je jedna HTML datoteka.

Waves i Junior su upravo to: učitaj build Vume, daj mu element, pozovi mount. Ova datoteka, na bilo kojem statičnom hostingu, gotova je aplikacija s tvojim dodacima, tvojim imenom i tvojim bojama, a nova izdanja Vume prati sama. Bez kompajliranja, bez poslužiteljskog koda, bez računa.

<!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 hostani ovdje navedeni su u indeksu dodataka, a AI ti može izraditi novi.

Svaka opcija za mount i odakle dolaze datoteke opisani su u samoj aplikaciji: Kako napraviti vlastitu aplikaciju. Taj opis dolazi s buildom, pa opisuje verziju koju upravo učitavaš, a ne onu prema kojoj je pisana ova stranica.

Drugi dio · Addon Protocol v2

Dodatak je mapa JSON datoteka.

Dodatak je izvor sadržaja: filmovi, radijske postaje, podcasti, recepti, tečajevi. Stavi mapu bilo gdje na web, dodaj njezinu adresu u aplikaciju i sve što je u njoj pojavit će se ondje, spremno za pregledavanje. Verzija 2 protokola ne treba poslužitelj: svaka krajnja točka može biti statična datoteka na bilo kojem CDN-u. Svaki postojeći v1 dodatak i dalje radi; aplikacije prevode između dviju verzija, a v1 ostaje podržan.

Najprije statično

Sve krajnje točke su GET, sve se mogu predmemorirati, sve se mogu hostati kao obične datoteke. Jedan neobavezni POST za sustav zadataka.

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

Modularno

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

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

Client-fetch zadaci

Krajnja točka može odgovoriti zadatkom umjesto podacima. Aplikacija dohvaća podatke s korisnikovom vlastitom IP adresom, pa statični dodatak radi i s geografski blokiranim API-jima.

// dodatak ostaje statičan,
// dohvat odradi klijent

mhub-addon.json

Minimalni dodatak je jedan manifest i jedna datoteka kataloga. Prenesi obje na bilo koji statični hosting i sve radi. Specifikacija je OpenAPI 3.1 s generiranim TypeScript tipovima i klijentskom bibliotekom bez ovisnosti, pod licencom MIT, na GitHubu.

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

Opiši to. AI to izradi.

Cijeli format dodataka stane u jedan prompt, i nikad ga ne moraš čitati. Kopiraj prompt, dodaj svoju ideju i AI odgovara mapom datoteka. Prenesi ih bilo kamo i tvoj dodatak je objavljen.

01

Kopiraj prompt

Upućuje AI na specifikaciju. Radi s bilo kojim asistentom koji može čitati poveznice, poput ChatGPT-ja ili Claudea.

02

Dodaj svoju ideju

„Moje omiljene radijske postaje.“ „Svi filmovi jednog redatelja.“ „Javna predavanja mog sveučilišta.“ Sve što ima popis.

03

Prenesi datoteke

Poslužit će bilo koji statični hosting, a GitHub Pages je besplatan. Dodaj adresu u mHub aplikaciju i pregledavaj vlastiti dodatak.

Pročitaj specifikaciju mHub Addon Protocol v2 na
https://raw.githubusercontent.com/mediahubmx/protocol/main/openapi.yaml
i izradi mi dodatak. Dodatak je mapa statičnih JSON datoteka,
spremna za prijenos na bilo koji web hosting. Odgovori svim datotekama:
za svaku njezinu punu putanju, a zatim njezin potpuni sadržaj.

Moj dodatak: [ovdje opiši svoju ideju]

Ako tvoj asistent ne može otvarati poveznice, umjesto toga zalijepi datoteku specifikacije u razgovor. Specifikacija i potpuni primjeri dodataka nalaze se na GitHubu.

Treći dio · mHub Browser API

Što tvoja stranica može unutar mHuba

Sve se nalazi u jednom imenskom prostoru: window.mhub, a svaki host nudi cijelu jezgru. Jednom provjeri postoji li imenski prostor, a onda ga samo pozivaj. Bez SDK-a, bez kompajliranja, bez računa: jedan script tag je cijela postava, a slobodno ga možeš hostati i sam.

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

API već radi u aplikacijama i stiže s njihovim novim izdanjima. Piši za njega već danas i tvoja stranica radi u svakom slučaju: gdje nema hosta, window.mhub jednostavno ne postoji i tvoja stranica ostaje obična web stranica. Nabavi preglednik koji ga ima.

mhub.fetch

Dohvati bilo što. Bez CORS-a, i sa zaglavljima zahtjeva koja preglednik inače zadržava za sebe.

// cross-origin, čitljivo
const r = await mhub.fetch(url);

mhub.openStream

Nekim medijima za reprodukciju trebaju vlastita zaglavlja zahtjeva. Jedan poziv, i host na svakoj platformi bira pravi put.

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

mhub.storage

Pohrana ključ/vrijednost koja prati tvoju stranicu, a ne domenu na kojoj se slučajno nalazi. Bez upita, bez postavljanja.

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

mhub-site.json

Jedna domena padne, a tvoja se stranica i dalje učitava. Posluži jednu malu datoteku na svakoj domeni; preglednik je pronalazi, provjerava tvoja zrcala i sam se prebacuje. Bez koda.

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

mhub.setLinks

Pločica na početnom zaslonu preglednika. Put natrag do tvoje stranice koji ostaje i između posjeta.

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

mhub.setSearch

Adresna traka postaje pretraživanje tvoje stranice. Upiti i prijedlozi idu izravno tvojoj stranici.

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

mhub.device + capabilities

Znaj gdje se izvršavaš i što host može, od mobitela do televizora, prije prvog iscrtavanja.

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

…i deklaracije aplikacije

Stranica koja radi kao aplikacija govori hostu što obrađuje sama: vlastitu navigaciju natrag (setBackHandler), reproduktor preko cijelog zaslona (setImmersive) i izlaz (exit); meta oznaka u HTML-u kaže da je to aplikacija napravljena za daljinski upravljač. Svaki član, s modelom dozvola i sustavom zrcala, nalazi se u API referenci.

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

Objavljuju ih ljudi poput tebe.

Dosad 56 dodataka zajednice od 31 autora. Prijavi se e-mailom, prenesi mapu kao zip ili poveži mapu koju hostaš negdje drugdje, i kad prođe pregled, nalazi se na mhub.mx/@you/addon, na popisu zajednice i u repozitoriju zajednice.

Napravi nešto. Veliko ili malo.

API referenca pokriva svakog člana, model dozvola i sustav zrcala. Specifikacija protokola dolazi s potpunim primjerima dodataka koje možeš kopirati.