Her fikir. Her ekran.
Bir öğleden sonralık iş: bir radyo uygulaması.
mHub, basit dosyalardan oluşan klasörleri ve sıradan web sitelerini telefon, TV ve masaüstü için uygulamalara dönüştüren açık bir platformdur. Programcı olman gerekmez: ne istediğini anlatabiliyorsan bir yapay zekâ onu yapabilir, mHub da ona çalışacak bir yer verir.
Tek platform, üç parça.
mHub tek bir uygulama değil. Birbirine uyan üç parçadan oluşur ve hepsi açıktır. İkisi temeldir: bir içerik biçimi ve bir tarayıcı API'si. Üçüncüsü uygulamalardır ve her biri bu temellerden birine ya da ikisine birden dayanır.
Uygulamalar
Asıl kullandığın şey. Vuma eklentileri gezilebilir tek bir ekrana dönüştürür, diğer uygulamalar da birer fikri evdeki her ekrana taşır. Hepsi web uygulamasıdır: kurulacak bir şey yok. Uygulamaları gör
İçerik: eklentiler
Eklenti bir içerik kaynağıdır: filmler, radyo istasyonları, podcast'ler, kurslar. Perde arkasında, herhangi bir web sunucusunda duran ve Addon Protocol v2 ile tanımlanan küçük metin dosyalarından oluşan bir klasördür. Bir yapay zekâ senin için bir tane yazabilir. Protokolü gör
Güçler: window.mhub
Sıradan bir web sitesini bir mHub uygulamasında aç, tarayıcının asla izin vermediği şeyleri yapabilsin: her yerden veri okumak, ölen bir alan adından sağ çıkmak, TV'nde yaşamak. Tek bir ad alanı, tek bir script etiketi: mHub Browser API. API'yi gör
Favorilerimiz. Hepsi yayında.
Vuma iki temele birden dayanır; yanındaki uygulamalar tek bir temelin ne kadar ileri götürdüğünü gösterir. Beş uygulama, beş farklı fikir ve her biri yola çıkmak için bir başlangıç noktası.
Vuma
Vuma'ya eklentileri ver, o da onları gezilebilir tek bir ekrana dönüştürsün: eklentilerinin sunduğu her katalog, hepsinde birden arama, bir kitaplık ve kaldığın yerden devam eden bir oynatıcı. Telefonda, TV'de ve masaüstünde aynı şekilde çalışan tek bir web uygulamasıdır; dokunmayı, uzaktan kumandayı ve fareyi kendisi yönetir.
İki temele birden dayanır: içeriği eklentiler getirir, bir mHub tarayıcısının içinde de Browser API sıradan bir sayfanın hiç sahip olmadığı güçleri ekler. Hatta onu kendi sayfana, kendi eklentilerin ve kendi adınla yerleştirebilirsin: tek bir HTML dosyası.


Waves
Radyo istasyonları, podcast'ler ve ücretsiz sesli kitaplar tek bir uygulamada. Waves, aynı Vuma derlemesinin üzerinde tek bir HTML dosyasıdır: beş ses eklentisi, camgöbeği bir vurgu rengi ve addonManager: "fixed"; böylece kaynaklar sabittir ve kullanıcı yalnızca onları açıp kapatır. Kaynağını görüntüle: sayfanın kendisi eğitimin tamamı.
Junior
Çocuklar için TV. Tek eklenti, canlı renkler, ilk ekrandan itibaren Almanca (locale: "de") ve addonManager: "hidden": kanepeden yanlış ayarlanacak bir şey yok. Bu da Vuma derlemesinin üzerinde tek bir HTML dosyası.
Mediathek
Eklenti veridir; birinin onun üzerine kurduğu şey ise uygulama. Mediathek, doğrudan ard-mediathek eklentisinin üzerinde duran tek bir HTML dosyasıdır, altında Vuma yok: sıralar, arama, bölümleriyle diziler, altyazılar ve kaldığın yeri hatırlayan bir oynatıcı. Veriyi eklenti getirir, görünüşü sayfa halleder.
Glance
Diğer temel tek başına: Glance hiç eklenti kullanmaz. Browser API üzerinde tek bir HTML dosyasıdır; canlı hava durumunu, manşetleri, piyasa fiyatlarını ve kendi sunucularının durumunu sakin tek bir ekrana toplar. Sıradan bir tarayıcıda zarifçe geri çekilir; bir mHub uygulamasının içinde ise her kutucuk canlanır.
Bir fikir, bir klasör, her ekran.
Listesi olan her şey bir eklenti olabilir; tarayıcının yapmayı reddettiği her şey de mHub içinde bir site olabilir. Bunlar yapıldığını görmek istediğimiz fikirler ve her biri bir prompt uzaklıkta: birini seç, aşağıdaki yapay zekâ prompt'una eklensin.
İzle
Bölgesel TV kanalın
Kanalın internete koyduğu her yayın, programa göre sıralar halinde, akşam haberleri en başta.
Bir film festivali
Fragmanları ve özetleriyle program; güne, mekâna ve bölüme göre gezilebilir.
Sessiz sinema
Internet Archive'dan kamu malı filmler, on yıla ve yönetmene göre sıralı.
Spor kulübün
Maç özetleri, maçların tamamı ve sezon fikstürü, canlı bir katalog olarak.
Şehir canlı kameraları
Bir şehrin herkese açık web kameraları, liman, meydan, dağ, canlı kanallar olarak.
Belediye meclisi toplantıları
Belediye meclisinin kayıtları ve canlı yayınları, oturuma ve gündem maddesine göre.
Dinle
Radyo istasyonların
Gerçekten dinlediğin on istasyon, logolarıyla, istediğin sırada.
Bir podcast ağı
Bir ağın RSS akışlarından her programı, en yeni bölümler en başta.
Yazara göre sesli kitaplar
Bir yazarın LibriVox kayıtları, bölümler epizot olarak, kaldığın yerden devam edilebilir.
Uyku öncesi masallar
Çocuklar için kısa sesli masallar, her masala sakin bir kapak, reklamsız.
Bir cemaat
Kilisenin, caminin ya da topluluğunun ibadetleri ve konuşmaları, canlı ve kayıtlı.
Bir istasyonun kendi uygulaması
Tek bir istasyonun yayınları, podcast'leri ve kendi renkleriyle Waves. Tek bir HTML dosyası.
Öğren
Bir üniversitenin dersleri
Herkese açık ders kayıtları, fakülteye ve döneme göre, dizüstü yerine TV'de.
Bir dil kursu
Dersler sırayla bölüm olarak, ses alıştırmaları videoların yanında.
Müze turları
Bir müzenin video ve sesli rehberleri, salon salon.
Yemek okulu
Yemek türüne ve mutfağa göre tarif videoları, malzemeler açıklamada.
Bir arşiv tarayıcısı
Archive.org ya da Project Gutenberg için dostça bir yüz: bir uygulama gibi gez, ara ve oku.
Bir konferansın konuşmaları
Bir konferans serisinin kaydedilmiş her konuşması, yıla ve oturum dizisine göre.
Ev ve aile
Bir aile ekranı
Hava durumu, manşetler ve önemsediğin şeylerin fiyatları, sakin tek bir ekranda. Bunu biz yaptık: adı Glance.
Ev kontrol paneli
Işıklar, NAS, yazıcı, modem. Tarayıcılar bu tür yerel istekleri reddeder; mHub uygulaması onları senin yerine yapar.
Kamera duvarı
Kendi kameraların, yerel ağdan, TV'de bir ızgara olarak.
Aile fotoğraf çerçevesi
Kendi sunucundaki fotoğraflar bir görsel kataloğu olarak: TV çerçeveye dönüşür.
Çocuklar için TV
Tek eklenti, canlı renkler, kanepeden yanlış ayarlanacak bir şey yok. İşte Junior.
Tek kanalın çizgi filmleri
Bir çocuk kanalının ücretsiz bölümleri, programa göre, gönül rahatlığıyla verebileceğin.
Araçlar
Bir haber okuyucu
Herhangi bir akışı doğrudan kaynağından çek. Sıradan tarayıcılar bunu engeller; mHub içinde düpedüz çalışır ve kanepeden rahat okunur.
Bir fiyat takipçisi
Mağazalarda fiyatları ve stok durumunu kontrol et, bir izleme listesi tut, cevabı her ekranda gör.
Sunucu durum panosu
Kendi makinelerin, diskleri ve servisleri, kimse aramadan önce kırmızıya dönen kutucuklar olarak.
Çözümlenmiş bir YouTube kanalı
Bir çözümleyici eklenti: bir kanal yapıştır, videolarını oynatılabilen bir katalog olarak al.
Bir dil için altyazılar
Tek bir dil için, imdb kimliklerine yanıt veren, açık bir altyazı kaynağını kullanan bir altyazı eklentisi.
Bir yapım nerede yayında
Bir film yaz, ülkende nerede oynadığını gör. Açık bir veritabanının üzerinde bir item eklentisi.
Bunlardan birini mi yaptın? mhub.mx'te yayımla: inceleriz, senin adınla barındırırız ve topluluk deposunda listeleriz.
Kendi uygulaman tek bir HTML dosyası.
Waves ve Junior tam olarak bu: Vuma derlemesini yükle, ona bir HTML elementi ver, mount çağır. Herhangi bir statik sunucudaki bu dosya, senin eklentilerin, adın ve renklerinle bitmiş bir uygulamadır ve Vuma sürümlerini kendiliğinden takip eder. Derleme adımı yok, sunucu kodu yok, hesap yok.
<!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>
Bir eklenti, manifest URL'sinden ibarettir. Burada barındırılanlar eklenti dizininde listelenir ve bir yapay zekâ sana yenisini yapabilir.
Her mount seçeneği ve dosyaların nereden geldiği uygulamanın kendisinde belgelenmiştir: Kendi uygulamanı nasıl yaparsın. Bu belge derlemeyle birlikte gelir, yani bu sayfanın yazıldığı sürümü değil, yüklemek üzere olduğun sürümü anlatır.
Eklenti, JSON dosyalarından oluşan bir klasördür.
Eklenti bir içerik kaynağıdır: filmler, radyo istasyonları, podcast'ler, tarifler, kurslar. Klasörü web'de herhangi bir yere koy, adresini bir uygulamaya ekle; içindeki her şey orada gezilebilir halde görünür. Protokolün 2. sürümü sunucu gerektirmez: her uç nokta, herhangi bir CDN'deki statik bir dosya olabilir. Mevcut her v1 eklentisi çalışmaya devam eder; uygulamalar ikisi arasında çeviri yapar ve v1 desteklenmeye devam eder.
Önce statik
Tüm uç noktalar GET'tir, hepsi önbelleğe alınabilir, hepsi düz dosya olarak barındırılabilir. Görev sistemi için isteğe bağlı tek bir POST.
/mhub-addon.json /catalog/{type}/{catalogId}.json /item/{type}/{id}.json /source/{type}/{id}.json
Birleştirilebilir
Kataloglar, öge ayrıntıları, kaynaklar, çözümleyiciler ve altyazılar ayrı kaynaklardır. Bir eklenti hepsini ya da yalnızca birini sunabilir.
"resources": ["catalog", "item", "source", "resolve", "subtitle"]
Client-fetch görevleri
Bir uç nokta veri yerine bir görevle yanıt verebilir. Uygulama isteği kullanıcının kendi IP adresiyle yapar, böylece statik bir eklenti coğrafi olarak engellenen API'lerle de çalışır.
// eklenti statik kalır,
// yolu istemci gider
mhub-addon.json
En küçük eklenti bir manifest ve bir katalog dosyasıdır. İkisini herhangi bir statik sunucuya yükle, çalışır. Spesifikasyon OpenAPI 3.1 biçimindedir; üretilmiş TypeScript tipleri ve bağımlılıksız bir istemci kütüphanesiyle gelir, MIT lisanslıdır ve GitHub'da.
{ "id": "my-movies", "name": "My Movies", "specVersion": 2, "resources": ["catalog"], "types": ["video"], "catalogs": [{ "id": "all", "name": "All", "type": "video" }] }
Anlat. Bir yapay zekâ yapsın.
Eklenti biçiminin tamamı tek bir prompt'a sığar ve onu hiç okuman gerekmez. Prompt'u kopyala, fikrini ekle, yapay zekâ bir klasör dolusu dosyayla yanıt versin. Onları herhangi bir yere yükle, eklentin yayında.
Prompt'u kopyala
Yapay zekâyı spesifikasyona yönlendirir. ChatGPT ya da Claude gibi bağlantı okuyabilen her asistanla çalışır.
Fikrini ekle
"Favori radyo istasyonlarım." "Bir yönetmenin bütün filmleri." "Üniversitemin herkese açık dersleri." Listesi olan her şey.
Dosyaları yükle
Her statik sunucu olur, GitHub Pages ücretsiz. Adresi bir mHub uygulamasına ekle ve kendi eklentinde gezin.
mHub Addon Protocol v2 spesifikasyonunu şu adresten oku:
https://raw.githubusercontent.com/mediahubmx/protocol/main/openapi.yaml
ve benim için bir eklenti yap. Eklenti, herhangi bir web sunucusuna
yüklenmeye hazır statik JSON dosyalarından oluşan bir klasördür. Her dosyayla
yanıt ver: önce tam yolu, sonra eksiksiz içeriği.
Eklentim: [fikrini buraya yaz]
Asistanın bağlantıları açamıyorsa spesifikasyon dosyasını sohbete yapıştır. Spesifikasyon ve eksiksiz örnek eklentiler GitHub'da.
Siten mHub içinde neler yapabilir
Her şey tek bir ad alanında: window.mhub ve her ana uygulama çekirdeğin tamamını sunar. Ad alanının varlığını bir kez kontrol et, sonra doğrudan çağır. SDK yok, derleme adımı yok, hesap yok: tek bir script etiketi kurulumun tamamı ve onu kendin barındırman da sorun değil.
- Ana uygulama
- …
- Cihaz
- …
- Yetenekler
- …
API uygulamalarda yayında ve sürümleriyle birlikte yaygınlaşıyor. Bugünden ona göre yaz, sayfan her iki durumda da çalışmaya devam eder: ana uygulama olmayan yerde window.mhub basitçe yoktur ve siten sıradan bir web sitesi olarak kalır. Bunu destekleyen bir tarayıcı edin.
mhub.fetch
Her şeyi çek. CORS yok, üstelik tarayıcının normalde kendine ayırdığı istek başlıkları da serbest.
// farklı kaynaktan, okunabilir const r = await mhub.fetch(url);
mhub.openStream
Bazı medyaların oynatılması için kendi istek başlıkları gerekir. Tek bir çağrı, ana uygulama her platformda doğru yolu seçer.
const s = await mhub.openStream( { url, headers }); video.src = s.url;
mhub.storage
Sitenin çalıştığı alan adına değil, sitenin kendisine bağlı anahtar/değer depolama. İzin sorusu yok, kurulum yok.
await mhub.storage.set(k, v);
mhub-site.json
Bir alan adı çöktü, siten yine de açılır. Her alan adında küçük bir dosya sun; tarayıcı onu bulur, yansılarını doğrular ve gerekirse kendiliğinden geçiş yapar. Kod yok.
{ "id": "mysite", "endpoints": [ "https://a.example", "https://b.example" ] }
mhub.setLinks
Tarayıcının ana ekranında bir kutucuk. Ziyaretler arasında da kalan, sitene dönüş yolu.
mhub.setLinks([ { id, name, icon, url }]);
mhub.setSearch
Adres çubuğu sitenin arama kutusuna dönüşür. Sorgular ve öneriler doğrudan sayfana gider.
mhub.setSearch({ placeholder, onQuery, onSuggest });
mhub.device + capabilities
İlk çizimden önce nerede çalıştığını ve ana uygulamanın neler yapabildiğini bil, telefondan TV'ye.
if (mhub.device.isTV) tvUi();
…ve uygulama bildirimleri
Uygulama olarak çalışan bir sayfa, neleri kendisinin hallettiğini ana uygulamaya söyler: kendi geri gezinmesini (setBackHandler), tam ekran oynatıcıyı (setImmersive) ve çıkış kapısını (exit); HTML'deki bir meta etiketi de kumanda için yapılmış bir uygulama olduğunu belirtir. İzin modeli ve yansı sistemiyle birlikte her üye API başvuru belgesinde.
mhub.setBackHandler(depth); mhub.setImmersive(true); <meta name="mhub" content="app dpad">
Senin gibi insanların yayımladıkları.
Şimdiye kadar 31 geliştirici 56 topluluk eklentisi yayımladı. E-posta adresinle giriş yap, bir klasörü zip olarak yükle ya da kendi barındırdığın bir klasörün bağlantısını ver; incelemeden geçtiğinde mhub.mx/@you/addon adresinde, topluluk listesinde ve topluluk deposunda yer alır.
Bir şey yap. Büyük ya da küçük.
API başvuru belgesi her üyeyi, izin modelini ve yansı sistemini kapsar. Protokol spesifikasyonu, kopyalayabileceğin eksiksiz örnek eklentilerle birlikte gelir.
Internet Archive
RTVE