Każdy pomysł. Każdy ekran.
Zbuduj aplikację radiową w jedno popołudnie.
mHub to otwarta platforma, która zamienia foldery prostych plików i zwykłe strony internetowe w aplikacje na telefony, telewizory i komputery. Nie musisz być programistą: jeśli potrafisz opisać, czego chcesz, AI może to zbudować, a mHub da temu miejsce do działania.
Jedna platforma, trzy części.
mHub to nie jedna aplikacja. To trzy części, które do siebie pasują, i każda z nich jest otwarta. Dwie są fundamentami: format treści i API przeglądarki. Trzecia to aplikacje, a każda z nich opiera się na jednym fundamencie albo na obu.
Aplikacje
To, czego faktycznie używasz. Vuma zamienia dodatki w jeden ekran do przeglądania, a inne aplikacje przenoszą każda po jednym pomyśle na każdy ekran w domu. Wszystkie są aplikacjami webowymi: nic nie trzeba instalować. Zobacz aplikacje
Treść: dodatki
Dodatek to źródło treści: filmy, stacje radiowe, podcasty, kursy. Od środka to folder małych plików tekstowych na dowolnym hostingu, opisany przez Addon Protocol v2. AI może go dla ciebie napisać. Zobacz protokół
Możliwości: window.mhub
Otwórz zwykłą stronę w aplikacji mHub, a będzie mogła robić rzeczy, na które przeglądarka nigdy nie pozwala: czytać dane z dowolnego miejsca, przetrwać martwą domenę, zamieszkać na twoim telewizorze. Jedna przestrzeń nazw, jeden tag script: mHub Browser API. Zobacz API
Nasze ulubione. Wszystkie już działają.
Vuma opiera się na obu fundamentach; aplikacje obok niej pokazują, jak daleko można zajść na jednym. Pięć aplikacji, pięć różnych pomysłów, i każda z nich to dobry punkt wyjścia.
Vuma
Vuma zamienia dodane dodatki w jeden ekran do przeglądania: każdy katalog, który udostępniają twoje dodatki, wyszukiwanie we wszystkich naraz, biblioteka i odtwarzacz, który wznawia od miejsca, w którym przerwano. To jedna aplikacja webowa, która działa tak samo na telefonach, telewizorach i komputerach, i sama obsługuje dotyk, pilota i mysz.
Opiera się na obu fundamentach: dodatki dostarczają treść, a w przeglądarce mHub Browser API dodaje możliwości, których zwykła strona nigdy nie ma. Możesz ją nawet osadzić na własnej stronie, z własnymi dodatkami i własną nazwą: jeden plik HTML.


Waves
Stacje radiowe, podcasty i darmowe audiobooki w jednej aplikacji. Waves to jeden plik HTML na tym samym buildzie Vuma: pięć dodatków audio, turkusowy akcent i addonManager: "fixed", więc źródła są ustalone, a użytkownik tylko je włącza i wyłącza. Podejrzyj kod źródłowy: sama strona jest całym samouczkiem.
Junior
Telewizja dla dzieci. Jeden dodatek, jaskrawe kolory, niemiecki od pierwszego ekranu (locale: "de") i addonManager: "hidden": z kanapy nie da się niczego źle ustawić. To także jeden plik HTML na buildzie Vuma.
Mediathek
Dodatek to dane; to, co ktoś na nim zbuduje, to aplikacja. Mediathek to jeden plik HTML bezpośrednio na dodatku ard-mediathek, bez Vuma pod spodem: rzędy, wyszukiwanie, seriale z odcinkami, napisy i odtwarzacz, który pamięta, gdzie przerwano. Dodatek pobiera dane, strona odpowiada za wygląd.
Glance
Drugi fundament w pojedynkę: Glance w ogóle nie używa dodatków. Jeden plik HTML na Browser API, który ściąga na jeden spokojny ekran aktualną pogodę, nagłówki wiadomości, ceny rynkowe i stan twoich własnych serwerów. W zwykłej przeglądarce działa w ograniczonym zakresie; w aplikacji mHub budzi się każdy kafelek.
Jeden pomysł, jeden folder, każdy ekran.
Wszystko, co ma listę, może być dodatkiem, a wszystko, czego przeglądarka odmawia, może być stroną w mHub. To pomysły, które chcielibyśmy zobaczyć zrealizowane, a każdy z nich dzieli od ciebie jeden prompt: wybierz jeden, a trafi do promptu dla AI poniżej.
Oglądaj
Twoja regionalna telewizja
Każda audycja, którą stacja udostępnia online, w rzędach według programu, z wieczornymi wiadomościami na początku.
Festiwal filmowy
Program ze zwiastunami i opisami, do przeglądania według dnia, miejsca i sekcji.
Kino nieme
Filmy z domeny publicznej z Internet Archive, uporządkowane według dekady i reżysera.
Twój klub sportowy
Skróty meczów, całe spotkania i terminarz sezonu jako katalog na żywo.
Miejskie kamery na żywo
Publiczne kamery jednego miasta, port, rynek, góra, jako kanały na żywo.
Sesje rady miasta
Nagrania i transmisje na żywo z rady twojego miasta, według sesji i punktu porządku obrad.
Słuchaj
Twoje stacje radiowe
Dziesięć stacji, których naprawdę słuchasz, z logo, w kolejności, jaką lubisz.
Jedna sieć podcastów
Każdy program jednej sieci z jej kanałów RSS, najnowsze odcinki na początku.
Audiobooki według autora
Nagrania LibriVox jednego autora, rozdziały jako odcinki, z możliwością wznowienia.
Bajki na dobranoc
Krótkie bajki audio dla dzieci, ze spokojną okładką dla każdej bajki i bez reklam.
Wspólnota wyznaniowa
Nabożeństwa i wykłady twojego kościoła, meczetu lub wspólnoty, na żywo i z nagrań.
Własna aplikacja stacji
Waves ze strumieniami i podcastami jednej stacji oraz jej własnymi kolorami. Jeden plik HTML.
Ucz się
Wykłady jednej uczelni
Publiczne nagrania wykładów, według wydziału i semestru, na telewizorze zamiast na laptopie.
Kurs językowy
Lekcje jako odcinki, po kolei, z ćwiczeniami audio obok filmów.
Zwiedzanie muzeum
Przewodniki wideo i audio po muzeum, sala po sali.
Szkoła gotowania
Filmy z przepisami według rodzaju dania i kuchni, ze składnikami w opisie.
Przeglądarka archiwum
Przyjazna nakładka na Archive.org lub Project Gutenberg: przeglądaj, szukaj i czytaj jak w aplikacji.
Wystąpienia z jednej konferencji
Każde nagrane wystąpienie z cyklu konferencji, według roku i ścieżki.
Dom i rodzina
Rodzinny ekran
Pogoda, nagłówki i ceny rzeczy, które cię interesują, na jednym spokojnym ekranie. Ten zbudowaliśmy sami: to Glance.
Panel sterowania domem
Światła, NAS, drukarka, router. Przeglądarki odmawiają takich lokalnych żądań; aplikacja mHub wykona je za ciebie.
Ściana kamer
Twoje własne kamery z sieci lokalnej jako siatka na telewizorze.
Rodzinna ramka na zdjęcia
Zdjęcia z twojego własnego serwera jako katalog obrazów: telewizor staje się ramką.
Telewizja dla dzieci
Jeden dodatek, jaskrawe kolory, z kanapy nie da się niczego źle ustawić. To Junior.
Bajki z jednego kanału
Darmowe odcinki jednego kanału dla dzieci, według programu, bezpieczne do oddania w małe ręce.
Narzędzia
Czytnik wiadomości
Pobieraj dowolny kanał prosto ze źródła. Zwykłe przeglądarki to blokują; w mHub to po prostu działa i dobrze się to czyta z kanapy.
Obserwator cen
Sprawdzaj ceny i dostępność w sklepach, prowadź listę obserwowanych i zobacz wynik na dowolnym ekranie.
Tablica stanu serwerów
Twoje własne maszyny, ich dyski i usługi jako kafelki, które robią się czerwone, zanim ktokolwiek zadzwoni.
Kanał YouTube z resolverem
Dodatek typu resolver: wklej kanał, a dostaniesz jego filmy jako katalog, który da się odtwarzać.
Napisy w jednym języku
Dodatek z napisami w jednym języku, odpowiadający dla identyfikatorów imdb, z otwartego źródła napisów.
Gdzie obejrzeć dany tytuł
Wpisz film i zobacz, gdzie jest dostępny w twoim kraju. Dodatek typu item na bazie otwartej bazy danych.
Masz już coś takiego? Opublikuj to na mhub.mx: sprawdzimy to, udostępnimy pod twoją nazwą i dodamy do repozytorium społeczności.
Twoja własna aplikacja to jeden plik HTML.
Waves i Junior to dokładnie to: wczytaj build Vuma, wskaż mu element, wywołaj mount. Ten plik na dowolnym hostingu statycznym to gotowa aplikacja z twoimi dodatkami, twoją nazwą i twoimi kolorami, która sama nadąża za wydaniami Vuma. Bez kompilacji, bez kodu serwera, bez konta.
<!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>
Dodatek to adres URL jego manifestu. Te hostowane tutaj znajdziesz w indeksie dodatków, a AI może zbudować ci nowy.
Każda opcja mount i to, skąd pochodzą pliki, są opisane w samej aplikacji: Jak zrobić własną aplikację. Opis jest dołączony do buildu, więc dotyczy wersji, którą zaraz wczytasz, a nie tej, dla której napisano tę stronę.
Dodatek to folder plików JSON.
Dodatek to źródło treści: filmy, stacje radiowe, podcasty, przepisy, kursy. Umieść folder gdziekolwiek w sieci, dodaj jego adres w aplikacji, a wszystko, co w nim jest, pojawi się tam do przeglądania. Wersja 2 protokołu nie potrzebuje serwera: każdy endpoint może być statycznym plikiem w dowolnym CDN. Każdy istniejący dodatek v1 nadal działa; aplikacje tłumaczą między obiema wersjami, a v1 pozostaje obsługiwany.
Najpierw statycznie
Wszystkie endpointy to GET, wszystkie można cache'ować, wszystkie można hostować jako zwykłe pliki. Jeden opcjonalny POST dla systemu zadań.
/mhub-addon.json /catalog/{type}/{catalogId}.json /item/{type}/{id}.json /source/{type}/{id}.json
Modułowość
Katalogi, szczegóły pozycji, źródła, resolvery i napisy to osobne zasoby. Jeden dodatek może dostarczać je wszystkie albo tylko jeden.
"resources": ["catalog", "item", "source", "resolve", "subtitle"]
Zadania client-fetch
Endpoint może odpowiedzieć zadaniem zamiast danymi. Aplikacja pobiera dane z własnego IP użytkownika, więc statyczny dodatek działa z API blokowanymi geograficznie.
// dodatek zostaje statyczny,
// po dane idzie klient
mhub-addon.json
Minimalny dodatek to jeden manifest i jeden plik katalogu. Wgraj oba na dowolny hosting statyczny i gotowe. Specyfikacja to OpenAPI 3.1 z generowanymi typami TypeScript i biblioteką kliencką bez zależności, na licencji MIT, na GitHubie.
{ "id": "my-movies", "name": "My Movies", "specVersion": 2, "resources": ["catalog"], "types": ["video"], "catalogs": [{ "id": "all", "name": "All", "type": "video" }] }
Opisz to. AI to zbuduje.
Cały format dodatków mieści się w jednym prompcie i nigdy nie musisz go czytać. Skopiuj prompt, dodaj swój pomysł, a AI odpowie folderem plików. Wgraj je gdziekolwiek i twój dodatek działa.
Skopiuj prompt
Kieruje AI do specyfikacji. Działa z każdym asystentem, który potrafi czytać linki, np. ChatGPT albo Claude.
Dodaj swój pomysł
„Moje ulubione stacje radiowe.” „Każdy film jednego reżysera.” „Publiczne wykłady mojej uczelni.” Wszystko, co ma listę.
Wgraj pliki
Zadziała każdy hosting statyczny, GitHub Pages jest darmowy. Dodaj adres w aplikacji mHub i przeglądaj własny dodatek.
Przeczytaj specyfikację mHub Addon Protocol v2 pod adresem
https://raw.githubusercontent.com/mediahubmx/protocol/main/openapi.yaml
i zbuduj dla mnie dodatek. Dodatek to folder statycznych plików JSON,
gotowy do wgrania na dowolny hosting. W odpowiedzi podaj każdy plik: jego pełną ścieżkę,
a potem całą zawartość.
Mój dodatek: [tu opisz swój pomysł]
Jeśli twój asystent nie potrafi otwierać linków, wklej plik specyfikacji do czatu. Specyfikacja i kompletne przykładowe dodatki są na GitHubie.
Co twoja strona może robić w mHub
Wszystko mieści się w jednej przestrzeni nazw: window.mhub, a każdy host udostępnia pełny rdzeń. Sprawdź raz, czy przestrzeń nazw istnieje, a potem po prostu z niej korzystaj. Bez SDK, bez kompilacji, bez konta: jeden tag script to cała konfiguracja, a hostowanie skryptu u siebie jest w porządku.
- Host
- …
- Urządzenie
- …
- Możliwości
- …
API działa już w aplikacjach i trafia do nich wraz z kolejnymi wydaniami. Pisz pod nie już dziś, a twoja strona i tak będzie działać: tam, gdzie nie ma hosta, window.mhub po prostu nie istnieje, a twoja strona pozostaje zwykłą stroną internetową. Pobierz przeglądarkę, która je ma.
mhub.fetch
Pobieraj cokolwiek. Bez CORS i z nagłówkami żądań, które przeglądarka zwykle zastrzega dla siebie.
// inna domena, a da się odczytać const r = await mhub.fetch(url);
mhub.openStream
Niektóre media potrzebują własnych nagłówków żądań, żeby się odtworzyć. Jedno wywołanie, a host wybierze właściwą drogę na każdej platformie.
const s = await mhub.openStream( { url, headers }); video.src = s.url;
mhub.storage
Magazyn klucz/wartość, który podąża za twoją stroną, a nie za domeną, na której akurat działa. Bez pytań, bez konfiguracji.
await mhub.storage.set(k, v);
mhub-site.json
Jedna domena padła, a twoja strona i tak się ładuje. Udostępnij jeden mały plik na każdej domenie; przeglądarka go znajdzie, zweryfikuje twoje kopie lustrzane i sama przełączy się na działającą. Bez kodu.
{ "id": "mysite", "endpoints": [ "https://a.example", "https://b.example" ] }
mhub.setLinks
Kafelek na ekranie startowym przeglądarki. Droga powrotna do twojej strony, która przetrwa między wizytami.
mhub.setLinks([ { id, name, icon, url }]);
mhub.setSearch
Pasek adresu staje się wyszukiwarką twojej strony. Zapytania i podpowiedzi trafiają prosto do twojej strony.
mhub.setSearch({ placeholder, onQuery, onSuggest });
mhub.device + capabilities
Wiedz, gdzie działasz i co potrafi host, od telefonu po telewizor, jeszcze przed pierwszym renderowaniem.
if (mhub.device.isTV) tvUi();
…i deklaracje aplikacji
Strona działająca jako aplikacja mówi hostowi, co obsługuje sama: własną nawigację wstecz (setBackHandler), odtwarzacz na pełnym ekranie (setImmersive) i wyjście (exit); tag meta w HTML mówi, że to aplikacja stworzona z myślą o pilocie. Każdy element, wraz z modelem uprawnień i systemem kopii lustrzanych, opisuje dokumentacja API.
mhub.setBackHandler(depth); mhub.setImmersive(true); <meta name="mhub" content="app dpad">
Publikowane przez ludzi takich jak ty.
Jak dotąd 56 dodatków społeczności od 31 twórców. Zaloguj się e-mailem, wgraj folder jako zip lub podlinkuj taki, który hostujesz, a gdy przejdzie weryfikację, będzie dostępny pod mhub.mx/@you/addon, na liście społeczności i w repozytorium społeczności.
Zbuduj coś. Dużego czy małego.
Dokumentacja API opisuje każdy element, model uprawnień i system kopii lustrzanych. Specyfikacja protokołu zawiera kompletne przykładowe dodatki, które możesz skopiować.
Internet Archive
RTVE