mHub
Ανοιχτή πλατφόρμα · Addon Protocol v2 · Browser API

Κάθε ιδέα. Κάθε οθόνη.

Φτιάξε μια εφαρμογή ραδιοφώνου σε ένα απόγευμα.

Το mHub είναι μια ανοιχτή πλατφόρμα που μετατρέπει φακέλους με απλά αρχεία και συνηθισμένους ιστότοπους σε εφαρμογές για κινητά, τηλεοράσεις και υπολογιστές. Δεν χρειάζεται να είσαι προγραμματιστής: αν μπορείς να περιγράψεις τι θέλεις, ένα AI μπορεί να το φτιάξει, και το mHub του δίνει ένα μέρος για να τρέξει.

Τρέχει στο Vypn και σε κάθε πρόγραμμα περιήγησης mHub Ανοιχτός κώδικας, MIT Χωρίς build, χωρίς λογαριασμό Τρέχει σε κινητά, τηλεοράσεις και υπολογιστές
Το Vuma σε τηλεόραση: μια προβεβλημένη εκπομπή της DW πάνω από γραμμές με ντοκιμαντέρ και οικονομικά βίντεο, με τους καταλόγους του πρόσθετου στο πάνω μέρος.
Το Vuma, μια εφαρμογή mHub, σε τηλεόραση. Όλα όσα βλέπεις σε αυτή την οθόνη προέρχονται από ένα πρόσθετο: το DW.
Η ιδέα

Μία πλατφόρμα, τρία μέρη.

Το mHub δεν είναι μία εφαρμογή. Είναι τρία μέρη που δένουν μεταξύ τους, και καθένα από αυτά είναι ανοιχτό. Τα δύο είναι θεμέλια: μια μορφή περιεχομένου και ένα API για το πρόγραμμα περιήγησης. Το τρίτο είναι οι εφαρμογές, και καθεμία στηρίζεται στο ένα θεμέλιο ή και στα δύο.

01

Οι εφαρμογές

Αυτό που πραγματικά χρησιμοποιείς. Το Vuma κάνει τα πρόσθετα μία οθόνη για περιήγηση, και άλλες εφαρμογές παίρνουν η καθεμία μία ιδέα και τη φέρνουν σε κάθε οθόνη του σπιτιού. Όλες είναι web εφαρμογές: δεν χρειάζεται εγκατάσταση. Δες τις εφαρμογές

02

Το περιεχόμενο: πρόσθετα

Ένα πρόσθετο είναι μια πηγή περιεχομένου: ταινίες, ραδιοφωνικοί σταθμοί, podcast, μαθήματα. Στην ουσία είναι ένας φάκελος με μικρά αρχεία κειμένου σε οποιονδήποτε διακομιστή web, που περιγράφεται από το Addon Protocol v2. Ένα AI μπορεί να σου το γράψει. Δες το πρωτόκολλο

03

Οι δυνατότητες: window.mhub

Άνοιξε έναν κανονικό ιστότοπο μέσα σε μια εφαρμογή mHub και μπορεί να κάνει πράγματα που ένα πρόγραμμα περιήγησης δεν επιτρέπει ποτέ: να διαβάζει δεδομένα από παντού, να αντέχει όταν ένα domain πάψει να λειτουργεί, να ζει στην τηλεόρασή σου. Ένα namespace, ένα script tag: το mHub Browser API. Δες το API

Μέρος πρώτο · Οι εφαρμογές

Οι αγαπημένες μας. Όλες σε λειτουργία.

Το Vuma στηρίζεται και στα δύο θεμέλια. Οι εφαρμογές δίπλα του δείχνουν πόσο μακριά φτάνει ένα θεμέλιο μόνο του. Πέντε εφαρμογές, πέντε διαφορετικές ιδέες, και καθεμία είναι ένα σημείο για να ξεκινήσεις.

Vuma

Δώσε στο Vuma πρόσθετα και τα κάνει μία οθόνη για περιήγηση: κάθε κατάλογο που προσφέρουν τα πρόσθετά σου, αναζήτηση σε όλα μαζί, μια βιβλιοθήκη, ένα πρόγραμμα αναπαραγωγής που συνεχίζει από εκεί που σταμάτησες. Είναι μία web εφαρμογή που τρέχει εξίσου σε κινητά, τηλεοράσεις και υπολογιστές, και χειρίζεται μόνη της την αφή, το τηλεχειριστήριο και το ποντίκι.

Στηρίζεται και στα δύο θεμέλια: τα πρόσθετα φέρνουν το περιεχόμενο, και μέσα σε ένα πρόγραμμα περιήγησης mHub το Browser API προσθέτει τις δυνατότητες που μια απλή σελίδα δεν έχει ποτέ. Μπορείς ακόμη και να το ενσωματώσεις σε μια δική σου σελίδα, με τα πρόσθετά σου και το όνομά σου: ένα αρχείο HTML.

Το Vuma σε κινητό: μια προβεβλημένη εκπομπή της DW με λεπτομέρειες και κουμπιά για τη λίστα μου, πάνω από μια γραμμή με ζωντανά τηλεοπτικά κανάλια.
Το πρόσθετο DW στο Vuma σε κινητό: ένα προβεβλημένο βίντεο ειδήσεων και μια λίστα με κλιπ που κυλά.

Waves

Ραδιοφωνικοί σταθμοί, podcast και δωρεάν ηχητικά βιβλία σε μία εφαρμογή. Το Waves είναι ένα αρχείο HTML πάνω στο ίδιο build του Vuma: πέντε πρόσθετα ήχου, μια τιρκουάζ απόχρωση και addonManager: "fixed", οπότε οι πηγές είναι δεδομένες και ο χρήστης απλώς τις ενεργοποιεί και τις απενεργοποιεί. Δες τον πηγαίο κώδικα: η ίδια η σελίδα είναι όλος ο οδηγός.

Waves: ένα podcast στην κορυφή, πάνω από γραμμές με ραδιοφωνικούς σταθμούς του SomaFM, με ένα τιρκουάζ λογότυπο κύματος στην πλαϊνή μπάρα.
Waves: SomaFM, Radio Browser, podcast και ηχητικά βιβλία, τιρκουάζ σε σκούρο φόντο. Ένα αρχείο HTML πάνω στο Vuma.

Junior

Παιδική τηλεόραση. Ένα πρόσθετο, φωτεινά χρώματα, γερμανικά από την πρώτη οθόνη (locale: "de") και addonManager: "hidden": τίποτα που μπορεί να ρυθμιστεί λάθος από τον καναπέ. Κι αυτό είναι ένα αρχείο HTML πάνω στο build του Vuma.

Junior: μια κινούμενη εικόνα του KiKA στην κορυφή, πάνω από γραμμές με παιδικές εκπομπές, στα γερμανικά, με ένα κίτρινο αστέρι για λογότυπο στην πλαϊνή μπάρα.
Junior: το πρόσθετο KiKA και τίποτα άλλο, με ένα αστέρι στην πόρτα.

Mediathek

Το πρόσθετο είναι τα δεδομένα. Ό,τι χτίζει κάποιος πάνω του είναι η εφαρμογή. Το Mediathek είναι ένα αρχείο HTML κατευθείαν πάνω στο πρόσθετο ard-mediathek, χωρίς Vuma από κάτω: γραμμές, αναζήτηση, σειρές με τα επεισόδιά τους, υπότιτλοι και ένα πρόγραμμα αναπαραγωγής που θυμάται πού σταμάτησες. Το πρόσθετο φέρνει τα δεδομένα, η σελίδα φροντίζει την εμφάνιση.

Mediathek: γραμμές με βίντεο και σειρές του ARD με τίτλους, ημερομηνίες και διάρκειες, και ένα πεδίο αναζήτησης.
Mediathek, ένα αρχείο HTML πάνω σε ένα πρόσθετο, χωρίς τίποτα δικό του για φιλοξενία.

Glance

Το άλλο θεμέλιο μόνο του: το Glance δεν χρησιμοποιεί καθόλου πρόσθετα. Ένα αρχείο HTML πάνω στο Browser API, που φέρνει ζωντανά τον καιρό, τίτλους ειδήσεων, τιμές αγορών και την κατάσταση των δικών σου διακομιστών σε μία ήρεμη οθόνη. Σε ένα απλό πρόγραμμα περιήγησης συνεχίζει να λειτουργεί με λιγότερα. Μέσα σε μια εφαρμογή mHub ζωντανεύει κάθε πλακίδιο.

Glance: ρολόι, καιρός, τιμές αγορών και τίτλοι ειδήσεων ως ήρεμα πλακίδια σε μία οθόνη.
Glance, ένα αρχείο HTML που φέρνει ζωντανά τον καιρό, τίτλους ειδήσεων και τιμές.
Τι μπορείς να φτιάξεις

Μία ιδέα, ένας φάκελος, κάθε οθόνη.

Οτιδήποτε έχει μια λίστα μπορεί να γίνει πρόσθετο, και οτιδήποτε αρνείται να κάνει ένα πρόγραμμα περιήγησης μπορεί να γίνει ιστότοπος μέσα στο mHub. Αυτές είναι ιδέες που θα θέλαμε να δούμε να γίνονται πραγματικότητα, και καθεμία απέχει μόνο ένα prompt: διάλεξε μία και θα μπει στο prompt για το AI πιο κάτω.

Πρόσθετο: ένας φάκελος με αρχεία JSON, φιλοξενημένος οπουδήποτε ή στο mhub.mx Ιστότοπος: μία ιστοσελίδα πάνω στο Browser API Εφαρμογή: το Vuma με τα πρόσθετά σου και το όνομά σου

Δες

Πρόσθετο

Ο περιφερειακός τηλεοπτικός σου σταθμός

Κάθε μετάδοση που ανεβάζει ο σταθμός στο διαδίκτυο, σε γραμμές ανά εκπομπή, με το βραδινό δελτίο ειδήσεων πρώτο.

Πρόσθετο

Ένα φεστιβάλ κινηματογράφου

Το πρόγραμμα με τρέιλερ και περιλήψεις, για περιήγηση ανά ημέρα, αίθουσα και ενότητα.

Πρόσθετο

Βωβός κινηματογράφος

Ταινίες κοινού κτήματος από το Internet Archive, ταξινομημένες ανά δεκαετία και σκηνοθέτη.

Πρόσθετο

Ο αθλητικός σου σύλλογος

Στιγμιότυπα, ολόκληροι αγώνες και το πρόγραμμα της σεζόν ως ζωντανός κατάλογος.

Πρόσθετο

Ζωντανές κάμερες της πόλης

Οι δημόσιες κάμερες μιας πόλης, το λιμάνι, η πλατεία, το βουνό, ως ζωντανά κανάλια.

Πρόσθετο

Συνεδριάσεις δημοτικού συμβουλίου

Καταγραφές και ζωντανές μεταδόσεις του δημοτικού σου συμβουλίου, ανά συνεδρίαση και θέμα της ημερήσιας διάταξης.

Άκου

Πρόσθετο

Οι ραδιοφωνικοί σου σταθμοί

Οι δέκα σταθμοί που πραγματικά ακούς, με λογότυπα, με τη σειρά που θέλεις.

Πρόσθετο

Ένα δίκτυο podcast

Κάθε εκπομπή ενός δικτύου από τα RSS feeds του, με τα νεότερα επεισόδια πρώτα.

Πρόσθετο

Ηχητικά βιβλία ανά συγγραφέα

Ηχογραφήσεις του LibriVox για έναν συγγραφέα, με τα κεφάλαια ως επεισόδια και συνέχιση από εκεί που σταμάτησες.

Πρόσθετο

Παραμύθια για πριν τον ύπνο

Σύντομες ηχητικές ιστορίες για παιδιά, με ένα ήρεμο εξώφυλλο για κάθε ιστορία και χωρίς διαφημίσεις.

Πρόσθετο

Μια θρησκευτική κοινότητα

Οι λειτουργίες και οι ομιλίες της εκκλησίας, του τζαμιού ή της κοινότητάς σου, ζωντανά και μαγνητοσκοπημένες.

Εφαρμογή

Η δική εφαρμογή ενός σταθμού

Το Waves, με τα streams και τα podcast ενός σταθμού και τα δικά του χρώματα. Ένα αρχείο HTML.

Μάθε

Πρόσθετο

Διαλέξεις ενός πανεπιστημίου

Οι δημόσιες καταγραφές διαλέξεων, ανά σχολή και εξάμηνο, στην τηλεόραση αντί για το laptop.

Πρόσθετο

Ένα μάθημα γλώσσας

Μαθήματα ως επεισόδια, στη σωστή αλληλουχία, με τις ηχητικές ασκήσεις δίπλα στα βίντεο.

Πρόσθετο

Ξεναγήσεις σε μουσεία

Οι οδηγοί ενός μουσείου σε βίντεο και ήχο, αίθουσα προς αίθουσα.

Πρόσθετο

Σχολή μαγειρικής

Βίντεο συνταγών ανά είδος πιάτου και κουζίνα, με τα υλικά στην περιγραφή.

Ιστότοπος

Περιήγηση σε ψηφιακά αρχεία

Ένα φιλικό πρόσωπο για το Archive.org ή το Project Gutenberg: περιήγηση, αναζήτηση και ανάγνωση σαν σε εφαρμογή.

Πρόσθετο

Ομιλίες από ένα συνέδριο

Κάθε καταγεγραμμένη ομιλία μιας σειράς συνεδρίων, ανά έτος και θεματική ενότητα.

Σπίτι και οικογένεια

Ιστότοπος

Μια οικογενειακή οθόνη

Καιρός, ειδήσεις και οι τιμές όσων σε ενδιαφέρουν, σε μία ήρεμη οθόνη. Αυτό το φτιάξαμε εμείς: είναι το Glance.

Ιστότοπος

Πάνελ ελέγχου σπιτιού

Φώτα, NAS, εκτυπωτής, router. Τα προγράμματα περιήγησης αρνούνται τέτοια τοπικά αιτήματα, η εφαρμογή mHub τα κάνει για σένα.

Ιστότοπος

Τοίχος καμερών

Οι δικές σου κάμερες, από το τοπικό δίκτυο, σε πλέγμα στην τηλεόραση.

Πρόσθετο

Η οικογενειακή κορνίζα

Φωτογραφίες από τον δικό σου διακομιστή ως κατάλογος εικόνων: η τηλεόραση γίνεται η κορνίζα.

Εφαρμογή

Παιδική τηλεόραση

Ένα πρόσθετο, φωτεινά χρώματα, τίποτα που μπορεί να ρυθμιστεί λάθος από τον καναπέ. Αυτό είναι το Junior.

Πρόσθετο

Κινούμενα σχέδια από ένα κανάλι

Τα δωρεάν επεισόδια ενός παιδικού καναλιού, ανά εκπομπή, που μπορείς άφοβα να δώσεις στα παιδιά.

Εργαλεία

Ιστότοπος

Ένας αναγνώστης ειδήσεων

Φέρε οποιοδήποτε feed κατευθείαν από την πηγή του. Τα κανονικά προγράμματα περιήγησης το μπλοκάρουν, μέσα στο mHub απλώς λειτουργεί, και διαβάζεται άνετα από τον καναπέ.

Ιστότοπος

Παρακολούθηση τιμών

Έλεγξε καταστήματα για τιμές και διαθεσιμότητα, κράτα μια λίστα παρακολούθησης, δες την απάντηση σε οποιαδήποτε οθόνη.

Ιστότοπος

Πίνακας κατάστασης διακομιστών

Τα δικά σου μηχανήματα, οι δίσκοι και οι υπηρεσίες τους, ως πλακίδια που κοκκινίζουν πριν σε πάρει κανείς τηλέφωνο.

Πρόσθετο

Ένα κανάλι YouTube, έτοιμο για αναπαραγωγή

Ένα πρόσθετο resolver: βάλε ένα κανάλι και πάρε τα βίντεό του ως κατάλογο που παίζει.

Πρόσθετο

Υπότιτλοι για μια γλώσσα

Ένα πρόσθετο υποτίτλων για μία γλώσσα, που απαντά για imdb ids, από μια ανοιχτή πηγή υποτίτλων.

Πρόσθετο

Πού προβάλλεται ένας τίτλος

Γράψε μια ταινία και δες πού παίζει στη χώρα σου. Ένα πρόσθετο στοιχείων πάνω σε μια ανοιχτή βάση δεδομένων.

Έφτιαξες κάτι από αυτά; Δημοσίευσέ το στο mhub.mx: το ελέγχουμε, το φιλοξενούμε με το όνομά σου και το εμφανίζουμε στο αποθετήριο της κοινότητας.

Μέρος πρώτο · Κάνε το Vuma δικό σου

Η δική σου εφαρμογή είναι ένα αρχείο HTML.

Το Waves και το Junior είναι ακριβώς αυτό: φόρτωσε το build του Vuma, δώσ' του ένα στοιχείο της σελίδας, κάλεσε το mount. Αυτό το αρχείο, σε οποιονδήποτε στατικό διακομιστή, είναι μια έτοιμη εφαρμογή με τα πρόσθετά σου, το όνομά σου και τα χρώματά σου, και ακολουθεί μόνο του τις νέες εκδόσεις του Vuma. Χωρίς build, χωρίς κώδικα διακομιστή, χωρίς λογαριασμό.

<!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>

Ένα πρόσθετο είναι το URL του manifest του. Όσα φιλοξενούνται εδώ εμφανίζονται στο ευρετήριο πρόσθετων, και ένα AI μπορεί να σου φτιάξει ένα καινούργιο.

Κάθε επιλογή του mount, και από πού έρχονται τα αρχεία, περιγράφεται μέσα στην ίδια την εφαρμογή: Πώς φτιάχνεις τη δική σου εφαρμογή. Έρχεται μαζί με το build, οπότε περιγράφει την έκδοση που πρόκειται να φορτώσεις και όχι εκείνη για την οποία γράφτηκε αυτή η σελίδα.

Μέρος δεύτερο · Το Addon Protocol v2

Ένα πρόσθετο είναι ένας φάκελος με αρχεία JSON.

Ένα πρόσθετο είναι μια πηγή περιεχομένου: ταινίες, ραδιοφωνικοί σταθμοί, podcast, συνταγές, μαθήματα. Βάλε τον φάκελο οπουδήποτε στο διαδίκτυο, πρόσθεσε τη διεύθυνσή του σε μια εφαρμογή, και ό,τι περιέχει εμφανίζεται εκεί, έτοιμο για περιήγηση. Η έκδοση 2 του πρωτοκόλλου δεν χρειάζεται διακομιστή: κάθε endpoint μπορεί να είναι ένα στατικό αρχείο σε οποιοδήποτε CDN. Κάθε υπάρχον πρόσθετο v1 συνεχίζει να λειτουργεί: οι εφαρμογές μεταφράζουν μεταξύ των δύο, και το v1 εξακολουθεί να υποστηρίζεται.

Πρώτα στατικό

Όλα τα endpoints είναι GET, όλα μπορούν να μπουν σε cache, όλα φιλοξενούνται ως απλά αρχεία. Ένα προαιρετικό POST για το σύστημα εργασιών.

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

Αρθρωτό

Κατάλογοι, λεπτομέρειες στοιχείων, πηγές, resolvers και υπότιτλοι είναι ξεχωριστοί πόροι. Ένα πρόσθετο μπορεί να τους παρέχει όλους ή μόνο έναν.

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

Εργασίες client-fetch

Ένα endpoint μπορεί να απαντήσει με μια εργασία αντί για δεδομένα. Η εφαρμογή κάνει το αίτημα με την IP του ίδιου του χρήστη, οπότε ένα στατικό πρόσθετο λειτουργεί και με API που έχουν γεωγραφικούς περιορισμούς.

// το πρόσθετο μένει στατικό,
// τη διαδρομή την κάνει ο client

mhub-addon.json

Ένα ελάχιστο πρόσθετο είναι ένα manifest και ένα αρχείο καταλόγου. Ανέβασε και τα δύο σε οποιονδήποτε στατικό διακομιστή και λειτουργεί. Η προδιαγραφή είναι OpenAPI 3.1 με παραγόμενους τύπους TypeScript και μια βιβλιοθήκη client χωρίς εξαρτήσεις, με άδεια MIT, στο GitHub.

{ "id": "my-movies", "name": "My Movies", "specVersion": 2,
  "resources": ["catalog"], "types": ["video"],
  "catalogs": [{ "id": "all", "name": "All", "type": "video" }] }
Μέρος δεύτερο · Φτιάξ' το με AI

Περίγραψέ το. Ένα AI το φτιάχνει.

Όλη η μορφή των πρόσθετων χωράει σε ένα μόνο prompt, και δεν χρειάζεται ποτέ να τη διαβάσεις. Αντίγραψε το prompt, πρόσθεσε την ιδέα σου, και το AI απαντά με έναν φάκελο αρχείων. Ανέβασέ τα οπουδήποτε και το πρόσθετό σου είναι online.

01

Αντίγραψε το prompt

Στέλνει το AI στην προδιαγραφή. Λειτουργεί με κάθε βοηθό που μπορεί να διαβάσει συνδέσμους, όπως το ChatGPT ή το Claude.

02

Πρόσθεσε την ιδέα σου

«Οι αγαπημένοι μου ραδιοφωνικοί σταθμοί.» «Κάθε ταινία ενός σκηνοθέτη.» «Οι δημόσιες διαλέξεις του πανεπιστημίου μου.» Οτιδήποτε έχει μια λίστα.

03

Ανέβασε τα αρχεία

Κάνει οποιοσδήποτε στατικός διακομιστής, το GitHub Pages είναι δωρεάν. Πρόσθεσε τη διεύθυνση σε μια εφαρμογή mHub και περιηγήσου στο δικό σου πρόσθετο.

Διάβασε την προδιαγραφή του mHub Addon Protocol v2 στο
https://raw.githubusercontent.com/mediahubmx/protocol/main/openapi.yaml
και φτιάξε μου ένα πρόσθετο (addon). Ένα πρόσθετο είναι ένας φάκελος με στατικά αρχεία JSON,
έτοιμα για ανέβασμα σε οποιονδήποτε διακομιστή web. Απάντησε με κάθε αρχείο: πρώτα την πλήρη διαδρομή του,
και μετά ολόκληρο το περιεχόμενό του.

Το πρόσθετό μου: [περίγραψε εδώ την ιδέα σου]

Αν ο βοηθός σου δεν μπορεί να ανοίξει συνδέσμους, επικόλλησε το αρχείο της προδιαγραφής στη συνομιλία. Η προδιαγραφή και πλήρη παραδείγματα πρόσθετων βρίσκονται στο GitHub.

Μέρος τρίτο · Το mHub Browser API

Τι μπορεί να κάνει ο ιστότοπός σου μέσα στο mHub

Όλα βρίσκονται κάτω από ένα namespace: window.mhub, και κάθε host προσφέρει ολόκληρο τον πυρήνα. Έλεγξε μία φορά αν υπάρχει το namespace και μετά απλώς κάλεσέ το. Χωρίς SDK, χωρίς build, χωρίς λογαριασμό: ένα script tag είναι όλη η εγκατάσταση, και μπορείς να το φιλοξενήσεις και μόνος σου.

<script src="https://mhub.mx/mhub.js"></script>
Έλεγχος αυτού του προγράμματος περιήγησης…
Host
…
Συσκευή
…
Δυνατότητες
…

Το API είναι ήδη ενεργό στις εφαρμογές και φτάνει παντού με τις νέες τους εκδόσεις. Γράψε κώδικα γι' αυτό από σήμερα και η σελίδα σου λειτουργεί σε κάθε περίπτωση: όπου δεν υπάρχει host, το window.mhub απλώς λείπει και ο ιστότοπός σου μένει ένας συνηθισμένος ιστότοπος. Βρες ένα πρόγραμμα περιήγησης που το έχει.

mhub.fetch

Φέρε οτιδήποτε. Χωρίς CORS, και με headers αιτήματος που το πρόγραμμα περιήγησης κανονικά κρατά για τον εαυτό του.

// cross-origin, αναγνώσιμο
const r = await mhub.fetch(url);

mhub.openStream

Κάποια πολυμέσα χρειάζονται δικά τους headers αιτήματος για να παίξουν. Μία κλήση, και ο host διαλέγει τη σωστή διαδρομή σε κάθε πλατφόρμα.

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

mhub.storage

Αποθήκευση κλειδιού/τιμής που ακολουθεί τον ιστότοπό σου, όχι το domain στο οποίο τυχαίνει να τρέχει. Χωρίς ερωτήσεις, χωρίς ρυθμίσεις.

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

mhub-site.json

Αν πέσει ένα domain, ο ιστότοπός σου φορτώνει κανονικά. Βάλε ένα μικρό αρχείο σε κάθε domain: το πρόγραμμα περιήγησης το βρίσκει, επαληθεύει τα mirrors σου και περνά μόνο του σε άλλο. Χωρίς κώδικα.

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

mhub.setLinks

Ένα πλακίδιο στην αρχική οθόνη του προγράμματος περιήγησης. Ο δρόμος πίσω στον ιστότοπό σου, που μένει από επίσκεψη σε επίσκεψη.

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

mhub.setSearch

Η γραμμή διευθύνσεων γίνεται η αναζήτηση του ιστότοπού σου. Τα ερωτήματα και οι προτάσεις πηγαίνουν κατευθείαν στη σελίδα σου.

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

mhub.device + capabilities

Μάθε πού τρέχεις και τι μπορεί να κάνει ο host, από το κινητό ως την τηλεόραση, πριν ζωγραφιστεί το πρώτο pixel.

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

…και οι δηλώσεις εφαρμογής

Μια σελίδα που τρέχει ως εφαρμογή λέει στον host τι χειρίζεται μόνη της: τη δική της πλοήγηση προς τα πίσω (setBackHandler), ένα πρόγραμμα αναπαραγωγής σε πλήρη οθόνη (setImmersive) και την έξοδο (exit). Ένα meta tag στο HTML δηλώνει ότι είναι εφαρμογή φτιαγμένη για τηλεχειριστήριο. Κάθε μέλος, μαζί με το μοντέλο δικαιωμάτων και το σύστημα mirrors, βρίσκεται στην τεκμηρίωση αναφοράς του API.

mhub.setBackHandler(depth);
mhub.setImmersive(true);
<meta name="mhub" content="app dpad">
Κοινότητα

Δημοσιευμένα από ανθρώπους σαν εσένα.

56 πρόσθετα της κοινότητας από 31 δημιουργούς μέχρι τώρα. Συνδέσου με το email σου, ανέβασε έναν φάκελο ως zip ή δώσε τον σύνδεσμο ενός που φιλοξενείς, και μόλις περάσει τον έλεγχο θα βρίσκεται στο mhub.mx/@you/addon, στη λίστα της κοινότητας και στο αποθετήριο της κοινότητας.

Φτιάξε κάτι. Μεγάλο ή μικρό.

Η τεκμηρίωση αναφοράς του API καλύπτει κάθε μέλος, το μοντέλο δικαιωμάτων και το σύστημα mirrors. Η προδιαγραφή του πρωτοκόλλου συνοδεύεται από πλήρη παραδείγματα πρόσθετων που μπορείς να αντιγράψεις.