MediaBox: an Android container that renders plugins instead of shipping media
全能媒体容器,插件化网罗天下媒体,畅快浏览视频、漫画和任何你想要的媒体数据。A universal media container, aggregating media through plugins to browse videos, comics and any media data you want.
At a glance
- What is it?
- MediaBox is a Kotlin Android app that hosts media plugins in a mini program style framework, where the container handles rendering, playback, history and per-plugin storage while each plugin supplies the data.
- Who is it for?
- MediaBox fits Android developers who want to write a media client once and reuse the rendering, player and storage layer across sources, and it fits readers who want a single app that opens video and comic plugins side by side. It does not fit you if you need a shipped application with your own signing key and a stable release cadence, because the build needs a secret file you must supply and the tagged releases are far older than the last push.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 25 days ago.
- What is it written in?
- Mainly Kotlin, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
A plugin host built like a mini program framework
MediaBox describes itself as a universal media container that aggregates media through plugins so that you can browse video, comics and other media data in one place. The framing in the project documentation is explicit about how it works: it implements a framework comparable to WeChat mini programs, where a developer only has to implement the plugin API and hand data to the container. The container then takes care of turning that data into a user interface. That division is the whole idea. A plugin is not a screen and it is not an activity; it is a data provider plus a small set of components, and the host turns those into a list, a detail page or a playback session. The example plugins named in the documentation are an anime client and a hot list aggregator that runs without tracking, which shows the range from a single source to a cross-source aggregator.
Rendering, history and periodic checks belong to the container
The container lists the services it provides to plugins, and the list is the best description of the architecture. It renders plugin data into the user interface through view components. It keeps media favourites and history. It runs a periodic media data check service, so a plugin that implements an update check component gets checked by the container instead of scheduling its own background work. It also gives each plugin a private visual key value store for its own configuration. On top of that sits a personal data and plugin cloud backup over WebDav, which the documentation marks as still in development. So the plugin author writes the fetching and the update rules, and the host owns the UI lifecycle, the persisted history and the polling.
The player is a container feature, not a plugin feature
Video playback is handled by a player component inside the container, and the feature list is unusually long for a mobile app: gesture control, night mode, danmaku comments, playback speed control, aggregation of multiple episodes, and adaptation to portrait or landscape orientation. Because that component lives in the host, a plugin does not need to ship its own player or fight the system media session, and a plugin that returns several episodes gets the multi episode aggregation for free. The trade-off is that the plugin author has less say in how playback behaves than they would with a custom player, since the component is part of the container rather than the plugin API.
Plugins are distributed through a separate repository site
Downloads and plugin discovery live outside the source repository. The project points users to an official plugin repository site, and the homepage of the repository is that plugin repository rather than an application page. Plugin development guidance sits in a wiki on the repository, and the API contract itself is a separate project called MediaBoxPlugin, so the surface a plugin implements is versioned independently of the container. Two related projects are named alongside it, one of them an application and the other the plugin repository. Anyone evaluating this has to read three things rather than one: the container source, the plugin API contract and the plugin repository, which is a real cost when you are judging how stable the integration surface is.
Building the app needs two files the repository deliberately omits
The build instructions name two files you have to supply before the project will build. The first is a build secret file, secret.gradle, which the documentation says to add to the project root yourself. The second is a licence agreement file, notice.iml, which has to be added under res/raw. The repository ships the Gradle wrapper, an app module, gradle.properties, settings.gradle.kts, a version.gradle file and an andresguard.gradle file, so the structure of an Android project is visible, but the signing or secret material is deliberately kept out of version control. This is normal practice for a shipping Android app, yet it does mean a fork is not a one command build, and it is the first practical obstacle for anyone who wants to maintain their own build rather than install the published package.
The safety and licence terms are unusually strict for the reader
The project is careful about how its binaries are distributed. The security note asks that APK packages not be shared privately, states that the GitHub repository is the only long term repository, asks that packages be downloaded only from it, and warns against installing plugins of unknown origin. The disclaimer says the software only displays data and provides none itself, much like a browser, that the copyright of everything shown belongs to the original authors, and that the software is for study and exchange only, with other uses forbidden without authorisation and deletion requested within 24 hours of download. The code itself is under the GNU General Public License v3.0, which is a separate matter from those usage terms. Anyone shipping this inside a product should read both documents closely.
Tagged releases trail the last push by a wide margin
The repository is not archived, and the last push to it was on 2026-09-28, with development happening on the default branch named dev. The release history tells a different story. The most recent tagged release by date is a build called Debug from 2024-11-12, and the numbered releases behind it are 62, also labelled 2.62, from 2024-06-16 and 60 from 2024-06-09. A gap between an active branch and a two year old tag is common in Android projects that build in CI, but it does mean the version you install from the plugin repository site may lag the code that is in the repository today, and that the tag numbers tell you very little about which changes are actually in your hands.
Editorial conclusion
MediaBox fits Android developers who want to write a media client once and reuse the rendering, player and storage layer across sources, and it fits readers who want a single app that opens video and comic plugins side by side. It does not fit you if you need a shipped application with your own signing key and a stable release cadence, because the build needs a secret file you must supply and the tagged releases are far older than the last push. Before committing, read the plugin API contract in the wiki and check the terms the project puts on its own binaries.
Frequently asked questions
What is MediaBox and what does a plugin have to implement?
MediaBox is an Android container app in Kotlin. A plugin implements the plugin API to supply data, and the container renders that data into the user interface, keeps history and runs periodic update checks.
Where do I download MediaBox and its plugins?
The project points to its official plugin repository website for downloads, and asks that APKs be obtained from the GitHub repository rather than from private shares or other sources.
Can I build MediaBox from source myself?
You need to supply two files that are not in the repository: a build secret file named secret.gradle in the project root, and a licence agreement file named notice.iml placed under res/raw.
What video features does the MediaBox player provide?
The player component in the container supports gesture control, night mode, danmaku comments, playback speed control, aggregation of multiple episodes and adaptation between portrait and landscape orientation.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/ryensx-mediabox)Was this useful?