# Ghosten Player: an Android and Android TV video player that connects to Aliyun Drive and Quark

> Ghosten Player is a Flutter video player for Android phones and Android TV that plays media straight from Aliyun Drive, Quark Drive, WebDAV and local storage, scrapes metadata, and handles IPTV. It is a single-device app with no backend, and its packaging split between phone and TV builds is the first thing to get right.

**GhostenEditor/Ghosten-Player** — 一个视频播放器，支持网盘直连、元数据刮削、IPTV、文件管理等 /   A video player that supports direct connection to network disk, metadata scraping, IPTV, file management, etc.

- Repository: https://github.com/GhostenEditor/Ghosten-Player
- Website: https://ghosteneditor.github.io/Ghosten-Player
- Stars: 3,311 · Forks: 201
- Language: Dart
- License: AGPL-3.0
- Published: 2026-09-24 · Updated: 2026-09-24 · Language: en
- Canonical page: https://hysenlabs.com/projects/ghosteneditor-ghosten-player

## What Ghosten Player solves for Android TV and phone users

Most Android media players assume you have a local library or a server. Ghosten Player assumes you have a network drive. The README lists Aliyun Drive, Quark Drive, WebDAV and local media files as the supported sources, plus Emby and Jellyfin as servers. That combination is the point: a TV box with almost no storage can browse a cloud library, scrape metadata for it, and play it without a home server sitting somewhere on the network.

The README states the app runs entirely locally with no backend service, and that the APK is about 15 MB. The footnote attached to that claim is worth reading: network drive service is provided by the drive vendors and is unrelated to the project. So the app is a client. If Aliyun Drive changes its API or throttles a request, that is outside the project's control.

The intended user is someone with an Android TV, an Android phone or tablet, or both, who already pays for a network drive and wants a single interface for it. The README also notes Windows and macOS clients are in development, so desktop users are not served yet.

## How the network drive, scraping and IPTV pieces fit together

The architecture visible from the repository is a Flutter application (Dart is the primary language, and the top-level layout includes android/, assets/, fonts/, lib/ and l10n.yaml for localization). The README describes the app as local-only, so there is no server component to deploy and no database to host. Accounts, file listings and playback state live on the device.

On the media side, the README lists metadata scraping from themoviedb and nfo files. NFO support matters because it means an existing library organized for Kodi-style tools can carry its own metadata instead of being re-scraped. Multi-account login is listed, so you can attach more than one drive account. File viewing and management, download, and download-while-playing are all listed as drive features, along with multi-threaded network acceleration and, for Aliyun Drive specifically, quality switching.

IPTV is a separate path: line switching, automatic grouping and EPG schedules. It is not tied to the drive features, so an IPTV-only user can ignore the scraping stack entirely.

The player layer lists gesture controls (double-tap play/pause, seek, volume and brightness adjustment, picture scaling, drag-to-seek, long-press speed), skip intro and outro, embedded and external subtitles, playback speed, video track selection, DLNA casting and custom subtitle styles. External subtitle formats are given as xml, vtt, ass and srt. That list is the practical boundary of what the player accepts.

## Installing Ghosten Player from the releases page

There is no package manager step. The README sends you to the Releases page and tells you to choose the package matching your device architecture. Since v1.6.0 the mobile and TV builds are packaged separately and cannot be mixed, which is the single most common way to get this wrong. The README's table gives four filenames, quoted here exactly as they appear:

```bash
app-arm64-v8a-release.apk
app-armeabi-v7a-release.apk
app-arm64-v8a-tv-release.apk
app-armeabi-v7a-tv-release.apk
```

The README notes that arm64-v8a suits most devices and that most phones are this architecture, while armeabi-v7a suits some lower-spec devices and most TVs are this architecture. Download the matching file from the latest release and install it on the device. The README states Android 6+ is required. If you install the phone APK on a TV, or the reverse, expect the interface and remote handling to be wrong rather than a clean error.

The README points to a browser demo at the project homepage, with two caveats: it is for display only, some features are limited by the browser, and it is not the complete version. It also says to use desktop Chrome or Edge, since mobile browsers may have compatibility problems. Treat the demo as a way to look at the interface, not to evaluate playback.

For first real use, the shape of the workflow is: add an account, add a resource, then let the app scrape it. The README's Wiki lists pages for adding an account, adding a resource, TV controls, DLNA casting, multi-threaded network acceleration and data sync. Those pages, not the README, hold the step-by-step detail.

## Where Ghosten Player is the wrong tool

The clearest limitation is platform. The README lists Windows and macOS as in development and says nothing about iOS. If your household watches on an iPhone or a Mac, this project does not cover you today. The search interest in a Ghosten Player iOS build is not matched by anything in the README.

The second limitation is the source list. Four sources are named: Aliyun Drive, Quark Drive, WebDAV and local files, plus Emby and Jellyfin. If your library lives on Google Drive, OneDrive, Dropbox or a self-hosted S3 bucket, the README documents no path for it. WebDAV is the general-purpose escape hatch, but only if your storage speaks WebDAV.

The third is operational. Because the app is local-only with no backend, there is no server-side transcoding. Playback depends on the device's own codec support and on the drive's streaming behaviour. The README lists quality switching for Aliyun Drive specifically, which implies that path is not uniform across sources. And since the drive service is provided by the vendors, a change on their side can break playback in a way the project cannot patch around.

Finally, packaging. Separate phone and TV APKs mean you cannot install one file everywhere and expect it to adapt.

## Ghosten Player against Emby, Jellyfin and Kodi

The obvious comparison is Emby or Jellyfin, and Ghosten Player is not purely a competitor to them: the README lists both as supported clients. The difference is where the library lives. Emby and Jellyfin are servers. You run them, they index your files, they transcode, and every client talks to that server. Ghosten Player has no server. It talks to drives and to Emby or Jellyfin servers directly, and it keeps its own metadata scraping and IPTV handling on the device.

That changes the trade-off. A Jellyfin server gives you one library shared across every client in the house, plus transcoding for weak hardware. Ghosten Player gives you no infrastructure to run and no server to maintain, at the cost of per-device setup and no transcoding layer. If you already run Jellyfin, adding Ghosten Player as a client on an Android TV makes sense; replacing Jellyfin with it does not, because the server-side features have no equivalent here.

Kodi is the closer analogue in spirit: a local player with scraping, subtitle handling and add-ons. Kodi's add-on ecosystem is broader and it runs on more platforms, including desktop. Ghosten Player's distinguishing feature is the built-in network drive integration and IPTV in one app, which in Kodi typically means add-ons. The README does not describe an add-on or plugin system for Ghosten Player.

## Maintenance, licensing and upgrade cost

The repository is not archived, and the last push was on 2026-09-21. Release v2.4.7 is dated 2026-09-22, with v2.4.6 on 2026-06-06 and v2.4.5 on 2026-06-02 before it. That is a gap of roughly three months between v2.4.6 and v2.4.7, so the release cadence is not uniform. The README also states the project is in a "labour of love" phase and asks for sponsorship to support continued maintenance, which is a candid signal about resourcing.

Upgrades are manual: download a new APK from Releases and install it over the existing one. The README lists automatic update as a feature, so the app can check for new versions, but the README does not document rollback, nor does it document a downgrade path if a new release misbehaves. Data sync between devices is listed as a feature and has its own Wiki page, but the README does not state what is synced or how conflicts are resolved.

The licence is AGPL-3.0. For a user installing an APK, that mostly means the source is available and modifications distributed to others must carry the same licence. For anyone considering forking the app into a product or bundling it, AGPL-3.0 is a copyleft licence with network-use provisions, and the practical implications depend on your distribution model. That is a question for a lawyer, not for this review.

## Conclusion

Adopt Ghosten Player if you watch from Aliyun Drive or Quark on an Android phone, tablet or TV box and want metadata, IPTV and network-drive browsing in one local app. Do not adopt it if you need iOS, Windows or macOS today, since the README lists those as in development, or if you depend on a documented CLI or API, which the repository does not provide. Before installing, check your device architecture against the release table, pick the phone or TV package rather than mixing them, and confirm Android 6.0 or above. Then verify that the network drive you actually use is one of the four the README names, because anything else has no documented path in.

## FAQ

### Which Ghosten Player APK should I download for my Android TV?

Use the TV package, not the phone one. The README's table lists app-arm64-v8a-tv-release.apk and app-armeabi-v7a-tv-release.apk, and notes that most TVs are armeabi-v7a. Since v1.6.0 the mobile and TV builds are packaged separately and cannot be mixed.

### Does Ghosten Player support iOS, Windows or macOS?

The README lists Windows and macOS as in development and says nothing about iOS. The supported clients are Android Phone, Android Pad and Android TV.

### Which network drives can Ghosten Player connect to?

The README names Aliyun Drive, Quark Drive, WebDAV and local media files, plus Emby and Jellyfin. It also states that the drive service itself is provided by the drive vendors and is unrelated to the project.

## Sources

- [GhostenEditor/Ghosten-Player on GitHub](https://github.com/GhostenEditor/Ghosten-Player)
- [License: AGPL-3.0](https://github.com/GhostenEditor/Ghosten-Player/blob/dev/LICENSE)
- [Project website](https://ghosteneditor.github.io/Ghosten-Player)
- [README](https://github.com/GhostenEditor/Ghosten-Player/blob/dev/README.md)
- [Releases](https://github.com/GhostenEditor/Ghosten-Player/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/ghosteneditor-ghosten-player
