Enhver idé. Alle skjermer.
Bygg en radioapp på en ettermiddag.
mHub er en åpen plattform som gjør mapper med enkle filer og vanlige nettsider om til apper for mobiler, TV-er og datamaskiner. Du trenger ikke være programmerer: kan du beskrive hva du vil ha, kan en KI bygge det, og mHub gir det et sted å kjøre.
Én plattform, tre deler.
mHub er ikke én app. Det er tre deler som passer sammen, og alle er åpne. To er fundamenter: et innholdsformat og et nettleser-API. Den tredje er appene, og hver av dem står på det ene fundamentet eller begge.
Appene
Det du faktisk bruker. Vuma gjør tillegg om til én skjerm du kan bla i, og andre apper tar hver sin idé til alle skjermene i huset. Alle er nettapper: ingenting å installere. Se appene
Innholdet: tillegg
Et tillegg er en kilde til innhold: filmer, radiostasjoner, podkaster, kurs. Under panseret er det en mappe med små tekstfiler på et hvilket som helst webhotell, beskrevet av Addon Protocol v2. En KI kan skrive et for deg. Se protokollen
Kreftene: window.mhub
Åpne en vanlig nettside i en mHub-app, og den kan gjøre ting en nettleser aldri tillater: lese data fra hvor som helst, overleve et dødt domene, bo på TV-en din. Ett navnerom, én script-tagg: mHub Browser API. Se API-et
Favorittene våre. Alle er live.
Vuma står på begge fundamentene; appene ved siden av viser hvor langt ett fundament alene rekker. Fem apper, fem ulike ideer, og hver av dem er et sted å starte fra.
Vuma
Gi Vuma tillegg, så gjør den dem om til én skjerm du kan bla i: alle katalogene tilleggene dine har, søk på tvers av dem alle, et bibliotek, en avspiller som fortsetter der du slapp. Det er én nettapp som kjører på mobiler, TV-er og datamaskiner, og som selv håndterer berøring, fjernkontroll og mus.
Den står på begge fundamentene: tilleggene bringer innholdet, og i en mHub-nettleser gir Browser API kreftene en vanlig side aldri har. Du kan til og med montere den på en egen side, med dine tillegg og ditt navn: én HTML-fil.


Waves
Radiostasjoner, podkaster og gratis lydbøker i én app. Waves er én HTML-fil over det samme Vuma-bygget: fem lydtillegg, en blågrønn aksentfarge og addonManager: "fixed", så kildene er faste og brukeren bare slår dem av og på. Se kildekoden: siden er hele veiledningen.
Junior
Barne-TV. Ett tillegg, sterke farger, tysk fra første skjerm (locale: "de") og addonManager: "hidden": ingenting å stille inn feil fra sofaen. Også én HTML-fil over Vuma-bygget.
Mediathek
Tillegget er dataene; det noen bygger oppå, er appen. Mediathek er én HTML-fil rett på ard-mediathek-tillegget, uten Vuma under: rader, søk, serier med episodene sine, undertekster og en avspiller som husker hvor du stoppet. Tillegget henter, siden står for utseendet.
Glance
Det andre fundamentet alene: Glance bruker ingen tillegg. Én HTML-fil på Browser API som henter været, overskrifter, markedspriser og statusen til dine egne servere inn på én rolig skjerm. I en vanlig nettleser nøyer den seg med mindre; i en mHub-app våkner hver flis.
Én idé, én mappe, alle skjermer.
Alt med en liste kan bli et tillegg, og alt en nettleser nekter å gjøre, kan bli en side i mHub. Dette er ideer vi gjerne vil se laget, og hver av dem er bare en prompt unna: velg én, så havner den i KI-prompten lenger ned.
Se
Din regionale TV-kanal
Alle sendinger kanalen legger ut på nett, som rader per program, med kveldsnyhetene først.
En filmfestival
Programmet med trailere og handlingsreferat, sortert etter dag, visningssted og seksjon.
Stumfilm
Rettighetsfrie filmer fra Internet Archive, sortert etter tiår og regissør.
Idrettslaget ditt
Høydepunkter, hele kamper og sesongens terminliste som en live katalog.
Webkameraer i byen
De offentlige webkameraene i én by, havnen, torget, fjellet, som direktekanaler.
Kommunestyremøter
Opptak og direktesendinger fra kommunestyret ditt, etter møte og sak.
Lytt
Radiostasjonene dine
De ti stasjonene du faktisk hører på, med logoer, i den rekkefølgen du liker.
Ett podkastnettverk
Alle programmene i ett nettverk fra RSS-feedene, nyeste episode først.
Lydbøker etter forfatter
LibriVox-innspillinger av én forfatter, kapitler som episoder, med fortsett der du slapp.
Godnatthistorier
Korte lydhistorier for barn, med et rolig omslag per historie og ingen reklame.
En menighet
Gudstjenestene og foredragene i din kirke, moské eller forsamling, direkte og i opptak.
En egen app for en stasjon
Waves, med én stasjons strømmer og podkaster og dens egne farger. Én HTML-fil.
Lær
Forelesninger fra ett universitet
De offentlige forelesningsopptakene, etter fakultet og semester, på TV-en i stedet for en laptop.
Et språkkurs
Leksjoner som episoder, i rekkefølge, med lydøvelsene ved siden av videoene.
Museumsomvisninger
Video- og lydguidene til et museum, rom for rom.
Matlagingskurs
Oppskriftsvideoer etter rett og kjøkken, med ingrediensene i beskrivelsen.
En arkivleser
Et vennlig ansikt for Archive.org eller Project Gutenberg: bla, søk og les som i en app.
Foredrag fra én konferanse
Alle innspilte foredrag fra en konferanseserie, etter år og spor.
Hjem og familie
En familieskjerm
Været, overskrifter og prisen på det du bryr deg om, på én rolig skjerm. Denne har vi bygget: den heter Glance.
Kontrollpanel for hjemmet
Lys, NAS, skriver, ruter. Nettlesere nekter slike lokale forespørsler; mHub-appen gjør dem for deg.
Kameravegg
Dine egne kameraer, fra det lokale nettverket, som et rutenett på TV-en.
Familiens bilderamme
Bilder fra din egen server som en bildekatalog: TV-en blir rammen.
Tegnefilm fra én kanal
De gratis episodene fra én barnekanal, etter program, trygt å gi til barna.
Verktøy
En nyhetsleser
Hent hvilken som helst feed rett fra kilden. Vanlige nettlesere blokkerer det; i mHub fungerer det bare, og det er lett å lese fra sofaen.
En prisvakt
Sjekk priser og lagerstatus i butikker, hold en overvåkningsliste, se svaret på hvilken som helst skjerm.
Statustavle for servere
Dine egne maskiner, diskene og tjenestene deres, som fliser som blir røde før noen ringer.
En YouTube-kanal, løst opp
Et resolver-tillegg: lim inn en kanal, få videoene som en katalog som spiller.
Undertekster på ett språk
Et undertekst-tillegg for ett språk, som svarer på imdb-ID-er, fra en åpen undertekstkilde.
Hvor en tittel strømmes
Skriv inn en film, se hvor den går i landet ditt. Et element-tillegg oppå en åpen database.
Har du laget en av disse? Publiser den på mhub.mx: vi går gjennom den, hoster den under ditt navn og viser den i fellesskapets repositorium.
Din egen app er én HTML-fil.
Waves og Junior er akkurat dette: last inn Vuma-bygget, gi det et element, kall mount. Denne filen, på et hvilket som helst statisk webhotell, er en ferdig app med dine tillegg, ditt navn og dine farger, og den følger Vuma-utgivelsene av seg selv. Ingen byggetrinn, ingen serverkode, ingen konto.
<!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>
Et tillegg er manifest-URL-en sin. De som hostes her, står i tilleggsoversikten, og en KI kan bygge et nytt for deg.
Alle mount-valg, og hvor filene kommer fra, er dokumentert i selve appen: Slik lager du din egen app. Den følger med bygget, så den beskriver versjonen du er i ferd med å laste inn, ikke den denne siden ble skrevet for.
Et tillegg er en mappe med JSON-filer.
Et tillegg er en kilde til innhold: filmer, radiostasjoner, podkaster, oppskrifter, kurs. Legg mappen hvor som helst på nettet, legg til adressen i en app, og alt i den dukker opp der, klart til å bla i. Versjon 2 av protokollen trenger ingen server: hvert endepunkt kan være en statisk fil på et hvilket som helst CDN. Alle eksisterende v1-tillegg fortsetter å virke; appene oversetter mellom de to, og v1 er fortsatt støttet.
Statisk først
Alle endepunkter er GET, alle kan mellomlagres, alle kan hostes som vanlige filer. Én valgfri POST for oppgavesystemet.
/mhub-addon.json /catalog/{type}/{catalogId}.json /item/{type}/{id}.json /source/{type}/{id}.json
Kombinerbart
Kataloger, elementdetaljer, kilder, resolvere og undertekster er separate ressurser. Ett tillegg kan tilby alle eller bare én.
"resources": ["catalog", "item", "source", "resolve", "subtitle"]
Client-fetch-oppgaver
Et endepunkt kan svare med en oppgave i stedet for data. Appen henter med brukerens egen IP, så et statisk tillegg fungerer med geoblokkerte API-er.
// tillegget forblir statisk,
// klienten tar turen
mhub-addon.json
Et minimalt tillegg er ett manifest og én katalogfil. Last opp begge til et hvilket som helst statisk webhotell, så virker det. Spesifikasjonen er OpenAPI 3.1 med genererte TypeScript-typer og et klientbibliotek uten avhengigheter, MIT-lisensiert, på GitHub.
{ "id": "my-movies", "name": "My Movies", "specVersion": 2, "resources": ["catalog"], "types": ["video"], "catalogs": [{ "id": "all", "name": "All", "type": "video" }] }
Beskriv det. En KI bygger det.
Hele tilleggsformatet får plass i én prompt, og du trenger aldri lese det. Kopier prompten, legg til ideen din, og KI-en svarer med en mappe med filer. Last dem opp hvor som helst, og tillegget ditt er live.
Kopier prompten
Den viser KI-en til spesifikasjonen. Fungerer med alle assistenter som kan lese lenker, som ChatGPT eller Claude.
Legg til ideen din
«Favorittradiostasjonene mine.» «Alle filmene til én regissør.» «De offentlige forelesningene ved universitetet mitt.» Alt med en liste.
Last opp filene
Alle statiske webhotell fungerer, GitHub Pages er gratis. Legg til adressen i en mHub-app og bla i ditt eget tillegg.
Les spesifikasjonen for mHub Addon Protocol v2 på
https://raw.githubusercontent.com/mediahubmx/protocol/main/openapi.yaml
og bygg et tillegg for meg. Et tillegg er en mappe med statiske JSON-filer,
klar til å lastes opp til et hvilket som helst webhotell. Svar med hver fil:
full sti, deretter hele innholdet.
Mitt tillegg: [beskriv ideen din her]
Hvis assistenten din ikke kan åpne lenker, limer du inn spesifikasjonsfilen i chatten i stedet. Spesifikasjonen og komplette eksempeltillegg ligger på GitHub.
Hva siden din kan gjøre i mHub
Alt ligger under ett navnerom: window.mhub, og alle verter tilbyr hele kjernen. Sjekk navnerommet én gang, og kall det deretter. Ingen SDK, ingen byggetrinn, ingen konto: én script-tagg er hele oppsettet, og du kan godt hoste den selv.
- Vert
- …
- Enhet
- …
- Funksjoner
- …
API-et er live i appene og rulles ut med utgivelsene deres. Skriv mot det i dag, så fortsetter siden din å virke uansett: der det ikke finnes noen vert, er window.mhub rett og slett fraværende, og siden din forblir en vanlig nettside. Skaff deg en nettleser som har det.
mhub.fetch
Hent hva som helst. Ingen CORS, og forespørselshoder nettleseren vanligvis holder for seg selv.
// cross-origin, lesbart const r = await mhub.fetch(url);
mhub.openStream
Noen medier trenger egne forespørselshoder for å spilles av. Ett kall, og verten velger riktig vei på hver plattform.
const s = await mhub.openStream( { url, headers }); video.src = s.url;
mhub.storage
Nøkkel/verdi-lagring som følger siden din, ikke domenet den tilfeldigvis kjører på. Ingen spørsmål, intet oppsett.
await mhub.storage.set(k, v);
mhub-site.json
Ett domene nede, og siden din laster likevel. Legg én liten fil på hvert domene; nettleseren finner den, verifiserer speilene dine og bytter over av seg selv. Ingen kode.
{ "id": "mysite", "endpoints": [ "https://a.example", "https://b.example" ] }
mhub.setLinks
En flis på nettleserens startskjerm. Veien tilbake til siden din, som varer mellom besøkene.
mhub.setLinks([ { id, name, icon, url }]);
mhub.setSearch
Adressefeltet blir søkefeltet til siden din. Søk og forslag går rett dit.
mhub.setSearch({ placeholder, onQuery, onSuggest });
mhub.device + capabilities
Vit hvor du kjører og hva verten kan, fra mobil til TV, før siden tegnes første gang.
if (mhub.device.isTV) tvUi();
…og app-deklarasjonene
En side som kjører som app, forteller verten hva den håndterer selv: sin egen tilbakenavigasjon (setBackHandler), en fullskjermavspiller (setImmersive) og døren ut (exit); en meta-tagg i HTML-en sier at det er en app laget for fjernkontrollen. Alle medlemmer, med tillatelsesmodellen og speilsystemet, står i API-referansen.
mhub.setBackHandler(depth); mhub.setImmersive(true); <meta name="mhub" content="app dpad">
Publisert av folk som deg.
56 fellesskapstillegg fra 31 skapere hittil. Logg inn med e-posten din, last opp en mappe som zip eller lenk til en du hoster selv, og når den har gått gjennom kontrollen, ligger den på mhub.mx/@you/addon, i fellesskapslisten og i fellesskapets repositorium.
Bygg noe. Stort eller smått.
API-referansen dekker alle medlemmer, tillatelsesmodellen og speilsystemet. Protokollspesifikasjonen kommer med komplette eksempeltillegg du kan kopiere.
Internet Archive
RTVE