mHub
Nytt Watch partys og chatter: Vuma er sosialt nå. Se det Å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: en fremhevet DW-dokumentar over en rad med videoer, addonets kataloger øverst.
Vuma, en mHub-app, på en tv. Alt på denne skjermen kommer fra ett eneste addon: DW.
Nytt · mHub Social

Se sammen. Uansett hvor dere er.

Venner, chatter og watch partys, rett i Vuma. Ingenting å installere: mhub.mx-kontoen din logger deg inn, og det du ser på blir noe dere deler, med dem du inviterer, på mobil, tv og datamaskin.

Watch party: én film, alle skjermer, samme øyeblikk

Planlegg en party i en chat, eller start en fra det som spilles. En nedtelling starter alle skjermer på samme slag, og hver spiller holder vertens tempo: pause, hopp, fortsett, alle ser det samme bildet.

Partyets ansikter sitter i kanten av bildet, chatten fortsetter under filmen, reaksjoner flyr over skjermen. Alle ser med sine egne addons, i sitt eget Vuma.

Det samme watch partyet på en mobil: bildet øverst, under det chatten med Nora og reaksjonene.
Vumas forside med DW-addonet på en mobil; i kanten Social-kortet med ansiktet til Nora, fordi hun ser på noe akkurat nå.

En messenger som vet hva dere ser på

Vuma har en Social-fane: chatter med venner og grupper, svar, reaksjoner og et søk som kjører på enheten din. Send en film som et kort, sett et hjerte på det, og planlegg partyet rett under. Hver melding er ende-til-ende-kryptert.

Det vennene dine ser på akkurat nå står over chattene og som et ansikt i kanten av forsiden. Ett trykk spør om å se med, og dere er i samme film.

En chat med Nora i Vuma på en mobil: en delt DW-dokumentar som et kort med et hjerte, et watch-party-kort for kl. 21 med en Bli med-knapp, og linjen om at chatten er ende-til-ende-kryptert og slettes etter 24 timer.
Social i Vuma på en mobil: øverst linjen om at Nora ser på en DW-dokumentar akkurat nå, med en knapp for å se med; under det planlagte watch partyet og chattene med Jonas og Nora.

Watch partys

Planlegg ett i en chat eller gruppe, eller start det fra det som spilles. Hver spiller holder seg synkronisert med verten, en nedtelling starter alle skjermer samtidig, og chatten fortsetter under filmen.

Venner og chatter

Chatter for to og grupper med det en messenger trenger: svar, reaksjoner, videresending, festede meldinger, stjerner, avstemninger, tilslørte spoilere og et søk som kjører på enheten din.

Ser nå

Se hva vennene dine har på akkurat nå, med bilde og hvor langt de er kommet, og spør med ett trykk om å se med. Du bestemmer hvem som ser det: alle, venner eller ingen.

Del en tittel

Send en film, en serie eller en kanal som et kort. Det åpnes i vennens Vuma med deres egne tillegg, uansett hvilken skjerm de holder.

Ende-til-ende-kryptert

Hver melding forsegles på enheten din og åpnes bare av dem du skriver til, med postkvantekryptering (X25519 og ML-KEM-768). Hvem som er i en gruppe, er en liste som gruppens admin signerer. Vi lagrer det vi ikke kan lese, og et sikkerhetsnummer viser at ingen sitter imellom.

Chatter som sletter seg selv

Hver chat slettes etter 24 timer; 7 dager bare hvis alle i den er enige. Serveren sletter for godt, filer inkludert, selv når ingen er online.

Én konto, ingenting å installere

Et alias er hele kontoen: ingen e-postadresse, ingen passord. En gjenopprettingsnøkkel, laget på enheten din og ikke kjent for noen andre, bringer deg og chattene dine tilbake på hvilken som helst enhet. Social er en del av Vuma: åpne det, velg et alias, ferdig. Vil du helst ikke ha det, slår én bryter i Innstillinger det av.

På alle skjermer

Mobiler, TV-er og datamaskiner, i samme konto. Meldingsbannere vises over en film som spilles, og på en TV tar ingenting fjernkontrollen bort fra bildet.

Tre steg til din første chat

Åpne Vuma, åpne Social, velg aliaset ditt. Finn venner via @brukernavnet deres eller send dem en invitasjonslenke: ett trykk, og dere er venner. Det fungerer likt uansett hvilken skjerm du holder.

Vuma på en datamaskin: chatlisten til venstre, chatten med Nora til høyre, med en delt DW-dokumentar og et watch-party-kort for kl. 21.
Vuma på en datamaskin med Social åpen: chattene til venstre, samtalen med en delt DW-dokumentar og dens watch party til høyre.
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: en fremhevet DW-dokumentar med knappene Detaljer og Min liste over en rad med videoer.
Siden til en video i Vuma på en mobil: en DW-dokumentar med beskrivelse, en Se-knapp og detaljene.

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.