Seanime Logo

Seanime

  • Home
  • Getting started
  • v2.8Latest
  • Config file / Data directory
  • Troubleshooting
  • Remote access
  • FAQ
  • Extensions and resources
  • Scan your library
  • Manage anime files
  • Download / Auto-download
  • Watch on other devices
  • Playlists
  • Media streaming
  • Torrent streaming
  • Debrid streaming
  • Online streaming
  • Manga and chapters
  • Reader settings
  • Download chapters
  • Extensions
  • Create extensions
  • Offline mode
  • UI Customization
Home
Getting started
v2.8Latest
Config file / Data directory
Troubleshooting
Remote access
FAQ
Extensions and resources
Anime library
Scan your library
Manage anime files
Download / Auto-download
Watch on other devices
Playlists
Media streaming
Streaming
Torrent streaming
Debrid streaming
Online streaming
Manga
Manga and chapters
Reader settings
Download chapters
Extensions
Extensions
Create extensions
Offline mode
UI Customization

Create Extensions

Learn how to create extensions for Seanime.

Extensions can add more options for features in Seanime. They can be written in Go, Typescript or JavaScript and are loaded at runtime. Currently, you can create extensions for the following features:

  • Anime torrent providers
  • Manga sources
  • Online streaming sources

1. Write the code

Follow the guides below to create extensions for the respective features:

Typescript/Javascript

a. Read up on Seanime's Javascript

  • 🪢 Seanime's Javascript
Why?
Seanime runs JS extensions in a interpreter with limited APIs. However, it exposes some custom APIs to make your life easier.

b. Write the extension

  • Anime torrent provider
  • Manga source
  • Online streaming source

c. Accept user configuration (optional)

What is that?
Make it so users can enter arbitrary values that you can use in variables inside your code. This is useful when your extension needs to use a personal API key.User configuration

GoLang

Prefer using JavaScript/Typescript for extensions as they will be easier to maintain.

Contact the developer for the GoLang extension guide.

2. Test the extension

  1. Go to the Extensions page in Seanime.
  2. Click on the Playground dropdown option.
Playground
  1. Select which type of extension you want to test and enter the code.

You will be able to select the method (function) you want to test. Different methods have different simulation parameters based on real in-app usage.

Playground

2. Create the extension file

a. Create a JSON file

Name it the same as your extension ID

my-original-extension-id.json
{
    "id": "my-original-extension-id",
    "name": "My Extension Name",
    "description": "My Extension Description",
    "manifestURI": "",
    "version": "1.0.0",
    "author": "Author Name",
    "type": "",
    "language": "",
    "lang": "",
    "payload": ""
}
Your extension ID
Make it unique! The ID should start with a letter and only contain letters, numbers, and dashes.

If your extension ID collides with an existing extension on the user's machine, your extension will not be installed.

Auto Downloader
  • id: ID of your extension.
  • name: The name of the extension.
  • description: A short description of the extension.
  • manifestURI: The URI where the manifest file is hosted. Used by Seanime to check for updates. This can be empty if you don’t plan on hosting and sharing your extension.
  • version: The version of the extension. x.x.x (e.g. 0.1.0)
  • author: The author of the extension.
  • type: The type of extension. See below for the available types.
  • anime-torrent-provider, manga-provider, onlinestream-provider
  • language: The programming language of the extension.
  • Can be go, typescript, or javascript.
  • lang: ISO 639-1 language of the extension’s content (e.g. “en”, “fr” etc.).
  • Set it to multi if your extension supports multiple languages.

b. Paste the payload

Paste the code of your extension in the payload field.

c. Define the user config (optional)

3. Share or use it

If you want to share your extension with others, you can host the manifest file on GitHub and share the link to the file.

If you just want to use it for yourself, just place the JSON file in the extensions directory in your data directory.

4. Update the extension

This is a simple process. Just update the version field in the JSON file and paste the new code in the payload field.


Good to know
Your extension might become imcompatible with a later version of Seanime.
Page

Check the Extension Changelog for breaking changes and update your code accordingly.