mHub
Åpen plattform · Addon Protocol v2 · Browser API

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.

Kjører i Vypn og alle mHub-nettlesere Åpen kildekode, MIT Ingen byggetrinn, ingen konto Kjører på mobiler, TV-er og datamaskiner
Vuma på en TV: et fremhevet DW-program over rader med dokumentarer og næringslivsvideoer, med tilleggets kataloger langs toppen.
Vuma, en mHub-app, på en TV. Alt på denne skjermen kommer fra ett tillegg: DW.
Konseptet

É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.

01

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

02

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

03

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

Del én · Appene

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.

Vuma på en mobil: et fremhevet DW-program med knapper for detaljer og Min liste over en rad med direktesendte TV-kanaler.
DW-tillegget i Vuma på en mobil: en fremhevet nyhetsvideo og en rullbar liste med klipp.

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.

Waves: en podkast øverst over rader med SomaFM-radiostasjoner, med en blågrønn bølgelogo i sidefeltet.
Waves: SomaFM, Radio Browser, podkaster og lydbøker, blågrønt på mørkt. Én HTML-fil på Vuma.

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.

Junior: en KiKA-animasjon øverst over rader med barneprogrammer, på tysk, med en gul stjernelogo i sidefeltet.
Junior: KiKA-tillegget og ingenting annet, med en stjerne på døren.

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.

Mediathek: rader med ARD-videoer og serier med titler, datoer og spilletider, og et søkefelt.
Mediathek, én HTML-fil over ett tillegg, uten noe eget å hoste.

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.

Glance: klokke, vær, markedspriser og nyhetsoverskrifter som rolige fliser på én skjerm.
Glance, én HTML-fil som henter vær, overskrifter og priser direkte.
Hva du kan bygge

É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.

Tillegg: en mappe med JSON-filer, hostet hvor som helst eller på mhub.mx Side: én nettside på Browser API App: Vuma med dine tillegg og ditt navn

Se

Tillegg

Din regionale TV-kanal

Alle sendinger kanalen legger ut på nett, som rader per program, med kveldsnyhetene først.

Tillegg

En filmfestival

Programmet med trailere og handlingsreferat, sortert etter dag, visningssted og seksjon.

Tillegg

Stumfilm

Rettighetsfrie filmer fra Internet Archive, sortert etter tiår og regissør.

Tillegg

Idrettslaget ditt

Høydepunkter, hele kamper og sesongens terminliste som en live katalog.

Tillegg

Webkameraer i byen

De offentlige webkameraene i én by, havnen, torget, fjellet, som direktekanaler.

Tillegg

Kommunestyremøter

Opptak og direktesendinger fra kommunestyret ditt, etter møte og sak.

Lytt

Tillegg

Radiostasjonene dine

De ti stasjonene du faktisk hører på, med logoer, i den rekkefølgen du liker.

Tillegg

Ett podkastnettverk

Alle programmene i ett nettverk fra RSS-feedene, nyeste episode først.

Tillegg

Lydbøker etter forfatter

LibriVox-innspillinger av én forfatter, kapitler som episoder, med fortsett der du slapp.

Tillegg

Godnatthistorier

Korte lydhistorier for barn, med et rolig omslag per historie og ingen reklame.

Tillegg

En menighet

Gudstjenestene og foredragene i din kirke, moské eller forsamling, direkte og i opptak.

App

En egen app for en stasjon

Waves, med én stasjons strømmer og podkaster og dens egne farger. Én HTML-fil.

Lær

Tillegg

Forelesninger fra ett universitet

De offentlige forelesningsopptakene, etter fakultet og semester, på TV-en i stedet for en laptop.

Tillegg

Et språkkurs

Leksjoner som episoder, i rekkefølge, med lydøvelsene ved siden av videoene.

Tillegg

Museumsomvisninger

Video- og lydguidene til et museum, rom for rom.

Tillegg

Matlagingskurs

Oppskriftsvideoer etter rett og kjøkken, med ingrediensene i beskrivelsen.

Side

En arkivleser

Et vennlig ansikt for Archive.org eller Project Gutenberg: bla, søk og les som i en app.

Tillegg

Foredrag fra én konferanse

Alle innspilte foredrag fra en konferanseserie, etter år og spor.

Hjem og familie

Side

En familieskjerm

Været, overskrifter og prisen på det du bryr deg om, på én rolig skjerm. Denne har vi bygget: den heter Glance.

Side

Kontrollpanel for hjemmet

Lys, NAS, skriver, ruter. Nettlesere nekter slike lokale forespørsler; mHub-appen gjør dem for deg.

Side

Kameravegg

Dine egne kameraer, fra det lokale nettverket, som et rutenett på TV-en.

Tillegg

Familiens bilderamme

Bilder fra din egen server som en bildekatalog: TV-en blir rammen.

App

Barne-TV

Ett tillegg, sterke farger, ingenting å stille inn feil fra sofaen. Det er Junior.

Tillegg

Tegnefilm fra én kanal

De gratis episodene fra én barnekanal, etter program, trygt å gi til barna.

Verktøy

Side

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.

Side

En prisvakt

Sjekk priser og lagerstatus i butikker, hold en overvåkningsliste, se svaret på hvilken som helst skjerm.

Side

Statustavle for servere

Dine egne maskiner, diskene og tjenestene deres, som fliser som blir røde før noen ringer.

Tillegg

En YouTube-kanal, løst opp

Et resolver-tillegg: lim inn en kanal, få videoene som en katalog som spiller.

Tillegg

Undertekster på ett språk

Et undertekst-tillegg for ett språk, som svarer på imdb-ID-er, fra en åpen undertekstkilde.

Tillegg

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.

Del én · Gjør Vuma til din

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.

Del to · Addon Protocol v2

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" }] }
Del to · Bygg med KI

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.

01

Kopier prompten

Den viser KI-en til spesifikasjonen. Fungerer med alle assistenter som kan lese lenker, som ChatGPT eller Claude.

02

Legg til ideen din

«Favorittradiostasjonene mine.» «Alle filmene til én regissør.» «De offentlige forelesningene ved universitetet mitt.» Alt med en liste.

03

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.

Del tre · mHub Browser API

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.

<script src="https://mhub.mx/mhub.js"></script>
Sjekker denne nettleseren…
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">
Fellesskap

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.