Plugins

The plugin system allows you to extend IINA's functionality with JavaScript. You can control the playback, call the mpv API, access the network and file system, add custom UI elements, and more.

Community Plugins

Plugins hosted on GitHub can be installed directly from IINA's plugin manager. Submit a pull request to our GitHub repository to have your plugin listed.

Loading plugin list from GitHub…

What you can do with the plugin system

Advanced Playback Control

Core
Control the playback and get/set various status from the window frame to subtitle tracks.
MPV
Access the mpv API with properties and hooks for advanced playback control.
Events
Register and remove listeners for IINA and mpv events.

User Interface Integration

Menu
Add menu items with keyboard shortcuts under the Plugin menu.
Overlay
Render custom webview-based content on the top of videos.
Playlist
Control the playlist and add custom playlist context menu items.
Subtitles
Register custom subtitle downloaders that integrates with IINA's user interface.
Sidebar View
Add a tab in the sidebar with custom webview-based contents.
Standalone Window
Display a webview-based standalone window for advanced user interface.
Preferences
Store preferences and display a settings page in IINA's settings.
Multiple Players
Spawn and control multiple player instances.

Network and File System

Network
Make HTTP and XMLRPC requests, start WebSocket servers.
File
Access the user file system or read/write sandboxed temporary files and data files.
Utils
Display system dialogs and run custom executables.
Console
Print logs for debugging, viewable from IINA's log viewer.

Start building your plugin

An iina-plugin command line tool is included with the IINA installation to help you create, build, and run plugins. We have also prepared a complete documentation with tutorials and API references.

Read the documentation

You may also find these resources helpful: