Skip to content

codingEzio/IINA-DanmakuCosmos-PatchOSS

Repository files navigation

IINA-DanmakuCosmos-Patch

Rebuild Danmaku Cosmos with your preferred defaults—without editing the plugin installed in IINA.

English · 简体中文 · 繁體中文 · 한국어 · 日本語

IINA-DanmakuCosmos-Patch is an unofficial, profile-driven patch builder for the Danmaku Cosmos IINA plugin.

All credit for the plugin being patched goes to karappo-yu and the Danmaku Cosmos contributors. This tool only automates a small set of downstream customizations; without the original Danmaku Cosmos project, there would be nothing here to patch.

verified upstream plugin + patch profile = new installable .iinaplgz

It downloads or accepts a clean upstream package, checks that the supported source code still matches, applies every patch in a temporary workspace, and atomically produces a new plugin package. It never edits the plugin currently installed in IINA.

Quick start

Requires Python 3.11 or newer. No third-party Python packages are needed.

make doctor
make test
make build

The result is dist/danmaku-cosmos-patched.iinaplgz. Open it with IINA and approve the plugin import.

Use the included compact style:

make build PROFILE=profiles/compact.toml

What can be customized

  • comment opacity and font scale;
  • stroke opacity and width;
  • scrolling speed;
  • CSS or default renderer;
  • DandanPlay automatic network lookup;
  • enabled state and comment limit.

Copy profiles/default.toml, edit the values, and pass the new file through PROFILE=.... Invalid or unknown settings fail before an output package is written.

Check a new upstream package

Before adding support for a new release, run a compatibility-only check:

make check SOURCE=/path/to/danmaku-cosmos.iinaplgz

The patcher uses exact compatibility anchors. If upstream code changes, it stops with the affected file name instead of guessing or producing a partially patched package.

How it is organized

source.py       download, checksum, and safe extraction
profile.py      typed profile loading and validation
transforms.py   focused patches for each upstream file
builder.py      temporary workspace and atomic packaging
cli.py          user-facing command line

See CONTRIBUTING.md for the development and release-readiness workflow.

Maintainers can create a versioned artifact plus SHA-256 file with:

make release VERSION=0.1.0 SOURCE=/path/to/danmaku-cosmos.iinaplgz

Scope and safety

  • The installed IINA plugin is never modified.
  • Builds happen in a disposable temporary directory.
  • Downloaded supported releases are pinned by SHA-256.
  • Archives are checked for unsafe paths before extraction.
  • All patches must validate before transformed files are written.
  • Video files and video-side danmaku XML files are out of scope.

This project is not affiliated with IINA or Danmaku Cosmos. Their names and source remain the property of their respective owners.

License

MIT

About

Safe, profile-driven custom builds of the Danmaku Cosmos IINA plugin.

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages