mHub
Öppen plattform · Addon Protocol v2 · Browser API

Alla idéer. Alla skärmar.

Bygg en radioapp på en eftermiddag.

mHub är en öppen plattform som gör mappar med enkla filer och vanliga webbplatser till appar för mobiler, tv-apparater och datorer. Du behöver inte vara programmerare: kan du beskriva vad du vill ha kan en AI bygga det, och mHub ger det en plats att köras.

Körs i Vypn och alla mHub-webbläsare Öppen källkod, MIT Inget byggsteg, inget konto Körs på mobiler, tv-apparater och datorer
Vuma på en tv: ett utvalt DW-program ovanför rader med dokumentärer och affärsvideor, med tilläggets kataloger längst upp.
Vuma, en mHub-app, på en tv. Allt på den här skärmen kommer från ett enda tillägg: DW.
Konceptet

En plattform, tre delar.

mHub är inte en app. Det är tre delar som passar ihop, och alla är öppna. Två av dem är grunder: ett innehållsformat och ett webbläsar-API. Den tredje är apparna, och var och en av dem står på den ena grunden eller på båda.

01

Apparna

Det du faktiskt använder. Vuma gör tillägg till en enda skärm att bläddra i, och andra appar tar var sin idé till alla skärmar i hemmet. Alla är webbappar: inget att installera. Se apparna

02

Innehållet: tillägg

Ett tillägg är en källa till innehåll: filmer, radiokanaler, poddar, kurser. Under huven är det en mapp med små textfiler på valfritt webbhotell, beskriven av Addon Protocol v2. En AI kan skriva ett åt dig. Se protokollet

03

Förmågorna: window.mhub

Öppna en vanlig webbplats i en mHub-app så kan den göra saker som en webbläsare aldrig tillåter: läsa data från var som helst, överleva en död domän, leva på din tv. En namnrymd, en script-tagg: mHub Browser API. Se API:t

Del ett · Apparna

Våra favoriter. Alla är live.

Vuma står på båda grunderna; apparna bredvid visar hur långt en enda grund räcker. Fem appar, fem olika idéer, och var och en är en bra startpunkt.

Vuma

Ge Vuma tillägg så gör den dem till en enda skärm att bläddra i: alla kataloger som dina tillägg har, sökning i alla på en gång, ett bibliotek och en spelare som fortsätter där du slutade. Det är en enda webbapp som körs lika bra på mobiler, tv-apparater och datorer, och som själv hanterar touch, fjärrkontroll och muspekare.

Den står på båda grunderna: tilläggen står för innehållet, och i en mHub-webbläsare lägger Browser API till förmågorna som en vanlig sida aldrig har. Du kan till och med bädda in den på en egen sida, med dina tillägg och ditt namn: en HTML-fil.

Vuma på en mobil: ett utvalt DW-program med detaljer och knappar för min lista, ovanför en rad med tv-kanaler live.
DW-tillägget i Vuma på en mobil: en utvald nyhetsvideo och en rullningsbar lista med klipp.

Waves

Radiokanaler, poddar och gratis ljudböcker i en app. Waves är en HTML-fil ovanpå samma Vuma-bygge: fem ljudtillägg, en blågrön accentfärg och addonManager: "fixed", så källorna är bestämda och användaren bara slår på och av dem. Visa källkoden: sidan är hela handledningen.

Waves: en podd överst ovanför rader med radiokanaler från SomaFM, med en blågrön våglogga i sidofältet.
Waves: SomaFM, Radio Browser, poddar och ljudböcker, blågrönt på mörkt. En HTML-fil på Vuma.

Junior

Barn-tv. Ett tillägg, glada färger, tyska från första skärmen (locale: "de") och addonManager: "hidden": inget att ställa in fel från soffan. Också en HTML-fil ovanpå Vuma-bygget.

Junior: en animation från KiKA överst ovanför rader med barnprogram, på tyska, med en gul stjärnlogga i sidofältet.
Junior: KiKA-tillägget och inget annat, med en stjärna på dörren.

Mediathek

Tillägget är datan; det någon bygger ovanpå är appen. Mediathek är en HTML-fil direkt på tillägget ard-mediathek, utan Vuma under: rader, sökning, serier med sina avsnitt, undertexter och en spelare som minns var du slutade. Tillägget hämtar, sidan står för utseendet.

Mediathek: rader med videor och serier från ARD med titlar, datum och speltider, och ett sökfält.
Mediathek, en HTML-fil ovanpå ett tillägg, utan något eget att hosta.

Glance

Den andra grunden på egen hand: Glance använder inga tillägg alls. En HTML-fil på Browser API som hämtar väder, rubriker, marknadspriser och status för dina egna servrar live till en lugn skärm. I en vanlig webbläsare fungerar den i begränsad form; i en mHub-app vaknar varje ruta till liv.

Glance: klocka, väder, marknadspriser och nyhetsrubriker som lugna rutor på en skärm.
Glance, en HTML-fil som hämtar väder, rubriker och priser live.
Vad du kan bygga

En idé, en mapp, alla skärmar.

Allt som har en lista kan bli ett tillägg, och allt som en webbläsare vägrar göra kan bli en webbsida i mHub. Det här är idéer vi gärna vill se förverkligade, och var och en är bara en prompt bort: välj en, så hamnar den i AI-prompten längre ner.

Tillägg: en mapp med JSON-filer, hostad var som helst eller på mhub.mx Webbsida: en enda sida på Browser API App: Vuma med dina tillägg och ditt namn

Titta

Tillägg

Din regionala tv-kanal

Allt som kanalen lägger ut på nätet, som rader per program, med kvällsnyheterna först.

Tillägg

En filmfestival

Programmet med trailers och handlingar, att bläddra i per dag, biograf och sektion.

Tillägg

Stumfilm

Filmer i allmän egendom från Internet Archive, sorterade efter årtionde och regissör.

Tillägg

Din idrottsförening

Höjdpunkter, hela matcher och säsongens spelschema som en livekatalog.

Tillägg

Stadens webbkameror

En stads offentliga webbkameror, hamnen, torget, berget, som livekanaler.

Tillägg

Kommunfullmäktige

Inspelningar och livesändningar från kommunfullmäktige, per möte och ärende.

Lyssna

Tillägg

Dina radiokanaler

De tio kanaler du faktiskt lyssnar på, med loggor, i den ordning du vill.

Tillägg

Ett poddnätverk

Alla program från ett nätverk via deras RSS-flöden, nyaste avsnittet först.

Tillägg

Ljudböcker per författare

LibriVox-inspelningar av en författare, kapitel som avsnitt, och du fortsätter där du slutade.

Tillägg

Godnattsagor

Korta ljudsagor för barn, med ett lugnt omslag per saga och utan reklam.

Tillägg

En församling

Gudstjänster och föredrag från din kyrka, moské eller gemenskap, live och inspelat.

App

En kanals egen app

Waves, med en kanals strömmar och poddar och dess egna färger. En HTML-fil.

Lär dig

Tillägg

Föreläsningar från ett universitet

De offentliga föreläsningsinspelningarna, per fakultet och termin, på tv:n i stället för på en laptop.

Tillägg

En språkkurs

Lektioner som avsnitt, i ordning, med ljudövningarna bredvid videorna.

Tillägg

Museivisningar

Ett museums video- och ljudguider, rum för rum.

Tillägg

Matlagningsskola

Receptvideor per typ av rätt och kök, med ingredienserna i beskrivningen.

Webbsida

En arkivläsare

Ett vänligt ansikte för Archive.org eller Project Gutenberg: bläddra, sök och läs som i en app.

Tillägg

Föredrag från en konferens

Alla inspelade föredrag från en konferensserie, per år och spår.

Hem och familj

Webbsida

En familjeskärm

Väder, rubriker och priset på det du bryr dig om, på en lugn skärm. Den här har vi byggt: det är Glance.

Webbsida

Kontrollpanel för hemmet

Lampor, NAS, skrivare, router. Webbläsare vägrar sådana lokala anrop; mHub-appen gör dem åt dig.

Webbsida

Kameravägg

Dina egna kameror, från det lokala nätverket, som ett rutnät på tv:n.

Tillägg

Familjens fotoram

Foton från din egen server som en bildkatalog: tv:n blir ramen.

App

Barn-tv

Ett tillägg, glada färger, inget att ställa in fel från soffan. Det är Junior.

Tillägg

Tecknat från en kanal

De gratis avsnitten från en barnkanal, per program, tryggt att lämna över till barnen.

Verktyg

Webbsida

En nyhetsläsare

Hämta vilket flöde som helst direkt från källan. Vanliga webbläsare blockerar det; i mHub fungerar det bara, och det är lätt att läsa från soffan.

Webbsida

En prisbevakare

Kolla priser och lagerstatus i butiker, håll en bevakningslista och se svaret på vilken skärm som helst.

Webbsida

Statustavla för servrar

Dina egna maskiner, deras diskar och tjänster, som rutor som blir röda innan någon ringer.

Tillägg

En YouTube-kanal, upplöst

Ett resolver-tillägg: klistra in en kanal och få dess videor som en katalog som går att spela.

Tillägg

Undertexter på ett språk

Ett undertexttillägg för ett språk, som svarar på imdb-id:n, från en öppen undertextkälla.

Tillägg

Var en titel strömmas

Skriv en film och se var den finns i ditt land. Ett objekttillägg ovanpå en öppen databas.

Har du gjort något av det här? Publicera det på mhub.mx: vi granskar det, hostar det under ditt namn och listar det i community-repositoryt.

Del ett · Gör Vuma till din

Din egen app är en HTML-fil.

Waves och Junior är precis det här: ladda Vuma-bygget, ge det ett element, anropa mount. Den här filen, på valfritt statiskt webbhotell, är en färdig app med dina tillägg, ditt namn och dina färger, och den följer Vumas nya versioner av sig själv. Inget byggsteg, ingen serverkod, inget 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>

Ett tillägg är dess manifest-URL. De som hostas här listas i tilläggsindexet, och en AI kan bygga ett nytt åt dig.

Alla mount-alternativ, och var filerna kommer ifrån, finns dokumenterade i själva appen: Så gör du din egen app. Dokumentationen följer med bygget, så den beskriver versionen du ska ladda och inte den som den här sidan skrevs för.

Del två · Addon Protocol v2

Ett tillägg är en mapp med JSON-filer.

Ett tillägg är en källa till innehåll: filmer, radiokanaler, poddar, recept, kurser. Lägg mappen var som helst på webben, lägg till adressen i en app, så dyker allt i den upp där, redo att bläddra i. Version 2 av protokollet behöver ingen server: varje endpoint kan vara en statisk fil på valfritt CDN. Alla befintliga v1-tillägg fortsätter att fungera; apparna översätter mellan de två, och v1 stöds även framöver.

Statiskt först

Alla endpoints är GET, alla går att cacha, alla kan hostas som vanliga filer. En valfri POST för uppgiftssystemet.

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

Kombinerbart

Kataloger, objektdetaljer, källor, resolvers och undertexter är separata resurser. Ett tillägg kan erbjuda alla eller bara en.

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

Client-fetch-uppgifter

En endpoint kan svara med en uppgift i stället för data. Appen hämtar med användarens egen IP, så ett statiskt tillägg fungerar med geoblockerade API:er.

// tillägget förblir statiskt,
// klienten gör resan

mhub-addon.json

Ett minimalt tillägg är ett manifest och en katalogfil. Ladda upp båda till valfritt statiskt webbhotell så fungerar det. Specifikationen är OpenAPI 3.1 med genererade TypeScript-typer och ett klientbibliotek utan beroenden, MIT-licensierat, på GitHub.

{ "id": "my-movies", "name": "My Movies", "specVersion": 2,
  "resources": ["catalog"], "types": ["video"],
  "catalogs": [{ "id": "all", "name": "All", "type": "video" }] }
Del två · Bygg med AI

Beskriv det. En AI bygger det.

Hela tilläggsformatet ryms i en enda prompt, och du behöver aldrig läsa den. Kopiera prompten, lägg till din idé, så svarar AI:n med en mapp med filer. Ladda upp dem var som helst så är ditt tillägg live.

01

Kopiera prompten

Den pekar AI:n mot specifikationen. Fungerar med alla assistenter som kan läsa länkar, till exempel ChatGPT eller Claude.

02

Lägg till din idé

"Mina favoritradiokanaler." "Alla filmer av en regissör." "De offentliga föreläsningarna på mitt universitet." Allt som har en lista.

03

Ladda upp filerna

Alla statiska webbhotell fungerar, GitHub Pages är gratis. Lägg till adressen i en mHub-app och bläddra i ditt eget tillägg.

Läs specifikationen för mHub Addon Protocol v2 på
https://raw.githubusercontent.com/mediahubmx/protocol/main/openapi.yaml
och bygg ett tillägg åt mig. Ett tillägg är en mapp med statiska JSON-filer,
redo att laddas upp till valfritt webbhotell. Svara med varje fil: först dess
fullständiga sökväg, sedan hela dess innehåll.

Mitt tillägg: [beskriv din idé här]

Om din assistent inte kan öppna länkar kan du klistra in specifikationsfilen i chatten i stället. Specifikationen och kompletta exempeltillägg finns på GitHub.

Del tre · mHub Browser API

Vad din webbplats kan göra i mHub

Allt finns under en namnrymd: window.mhub, och alla värdar erbjuder hela kärnan. Kontrollera en gång att namnrymden finns, sedan är det bara att anropa. Ingen SDK, inget byggsteg, inget konto: en script-tagg är hela installationen, och du får gärna hosta den själv.

<script src="https://mhub.mx/mhub.js"></script>
Kontrollerar den här webbläsaren…
Värd
…
Enhet
…
Förmågor
…

API:t är live i apparna och rullas ut med deras nya versioner. Skriv mot det i dag så fortsätter din sida att fungera oavsett: där ingen värd finns saknas window.mhub helt enkelt och din webbplats förblir en vanlig webbplats. Skaffa en webbläsare som har det.

mhub.fetch

Hämta vad som helst. Ingen CORS, och request-headers som webbläsaren annars reserverar för sig själv.

// cross-origin, läsbart
const r = await mhub.fetch(url);

mhub.openStream

Vissa medier behöver egna request-headers för att spelas. Ett anrop, så väljer värden rätt väg på varje plattform.

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

mhub.storage

Nyckel/värde-lagring som följer din webbplats, inte domänen den råkar köras på. Ingen fråga, ingen installation.

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

mhub-site.json

En domän nere, din webbplats laddas ändå. Lägg en liten fil på varje domän; webbläsaren hittar den, verifierar dina speglar och växlar över av sig själv. Ingen kod.

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

mhub.setLinks

En ruta på webbläsarens startskärm. Vägen tillbaka till din webbplats, som finns kvar mellan besöken.

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

mhub.setSearch

Adressfältet blir din webbplats sökfält. Sökningar och förslag går direkt till din sida.

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

mhub.device + capabilities

Vet var du körs och vad värden kan, från mobil till tv, redan innan sidan ritas första gången.

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

…och appdeklarationerna

En sida som körs som app talar om för värden vad den hanterar själv: sin egen bakåtnavigering (setBackHandler), en helskärmsspelare (setImmersive) och vägen ut (exit); en meta-tagg i HTML-koden säger att den är en app byggd för fjärrkontrollen. Alla medlemmar, med behörighetsmodellen och spegelsystemet, finns i API-referensen.

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

Publicerat av folk som du.

56 communitytillägg från 31 skapare hittills. Logga in med din e-post, ladda upp en mapp som zip eller länka en som du hostar själv, och när tillägget har klarat granskningen finns det på mhub.mx/@you/addon, i communitylistan och i community-repositoryt.

Bygg något. Stort eller litet.

API-referensen täcker alla medlemmar, behörighetsmodellen och spegelsystemet. Protokollspecifikationen kommer med kompletta exempeltillägg som du kan kopiera.