Watch
1
Fork
You've already forked Jellyfin-Megakino-Downloader
0
0

Latest commit

WildesBenny
16aefd4 2026-04-30 23:26:17 +02:00 15 commits
2026-04-27 13:12:13 +02:00
2026-04-27 13:12:13 +02:00
2026-04-27 13:12:13 +02:00
2026-04-27 13:12:13 +02:00
2026-04-30 23:26:17 +02:00
2026-04-27 13:12:13 +02:00
fix
2026-04-30 22:33:07 +02:00
2026-04-27 13:12:13 +02:00
2026-04-27 13:12:13 +02:00
2026-04-30 23:26:17 +02:00
2026-04-27 13:12:13 +02:00
2026-04-27 13:12:13 +02:00
fix
2026-04-27 13:22:19 +02:00

Jellyfin Megakino Downloader

A Jellyfin plugin that integrates the unofficial megakino Python client to search, download and integrate movies, TV-series and documentaries from MegaKino into your local Jellyfin library.

Disclaimer (Important)

This software may be used to download media from third-party websites. Using it may violate the terms of service of those websites and could infringe copyright or other laws in some jurisdictions.

Use this software at your own risk. The author and contributors provide this software "AS IS" and assume no responsibility or liability for any consequences arising from its use, including but not limited to legal claims, damages, loss of data, or other liabilities. It is your responsibility to ensure that you have the legal right to download and store any content you obtain with this tool. If you are unsure about the legality of your intended use, consult a qualified legal professional.

Features

  • Feed tab: carousel, movies/series grid and "Recently added" list from MegaKino
  • Search MegaKino directly from Jellyfin
  • Downloads tab: live progress for running and past downloads
  • Subscriptions: monitor series and automatically queue new episodes
  • Server-side image proxy with caching (clients never call MegaKino directly)
  • NFO metadata (.nfo) generation for Kodi/Jellyfin compatibility

Requirements

  • Jellyfin 10.x (tested with 10.9.x / 10.11.x)
  • .NET 8 SDK to build the plugin
  • Python 3.10+ on the server with the megakino package and yt-dlp installed:
pip install megakino-python yt-dlp
  • The configured Python interpreter must be able to import megakino and import yt_dlp.

Building

dotnet build -c Release

The compiled plugin is located at bin/Release/net8.0/Jellyfin.Plugin.MegakinoDownloader.dll.

Installation (manual)

  1. Copy Jellyfin.Plugin.MegakinoDownloader.dll to your Jellyfin plugins directory (e.g. /var/lib/jellyfin/plugins/MegakinoDownloader/).
  2. Restart Jellyfin.
  3. Open Admin → Plugins → Megakino Downloader and configure target libraries, Python executable, preferred hoster and other settings.

Installation (via Jellyfin Plugin Catalog)

This repository includes helper files that let you expose the plugin as a custom Jellyfin plugin catalog.

Included files (in this repo):

  • plugins.json — repository index that lists available plugin packages (the URL you add to Jellyfin).
  • manifest.json — per-plugin metadata (included as a convenience; the important part for cataloging is plugins.json).
  • meta.json — optional repository metadata describing the catalog.

Setup and publish

  1. Build the plugin:
dotnet build -c Release
  1. Upload the compiled DLL to the repository so it is reachable via a raw download URL. Recommended approaches:
  • Create a releases/ directory in the repository and upload Jellyfin.Plugin.MegakinoDownloader.dll there.
  • Or create a GitLab/GitHub Release and attach the DLL as a release asset (then use the release/download raw URL).
  1. Ensure plugins.json contains a packageUrl that points to the raw downloadable DLL (example URLs shown below). The packageUrl must be a direct link to the .dll so Jellyfin can download it.

Example raw URLs (edit branch/path as needed):

  • Repository index (plugins.json):

    https://git.cydium.net/WildesBenny/Jellyfin-Megakino-Downloader/-/raw/main/plugins.json

  • Plugin DLL (example packageUrl used in plugins.json):

    https://git.cydium.net/WildesBenny/Jellyfin-Megakino-Downloader/-/raw/main/releases/Jellyfin.Plugin.MegakinoDownloader.dll

Add the catalog to Jellyfin

  1. In Jellyfin Admin: go to Plugins → Catalogs → Add.
  2. Enter the raw URL to plugins.json (the repository index) and save.
  3. Open Plugins → Catalogs → Refresh (or wait a short while) to fetch the new index.
  4. Install "Jellyfin Megakino Downloader" from the catalog and restart the server.

Notes and tips

  • packageUrl in plugins.json must point to a downloadable .dll (raw file or release asset). If you change branches or the release layout, update plugins.json accordingly.
  • manifest.json is included as plugin metadata and meta.json documents the catalog; Jellyfin mainly uses plugins.json for discovery.
  • If you want, I can add a CI job to build the DLL and automatically attach it to a release, then update plugins.json to point to that release asset.

CI: Automatic build & release

This repository contains a .gitlab-ci.yml that will automatically build the plugin and publish the compiled DLL as a GitLab Release asset when pushed to main.

How it works

  • The pipeline runs dotnet build -c Release using the .NET 8 SDK image and copies the compiled DLL into releases/.
  • A release job then uploads the DLL to the project's Release (tag v<short-commit-sha>) and adds the DLL as a release asset.

What you need to configure

  • Add a CI variable GITLAB_RELEASE_TOKEN (Repository → Settings → CI/CD → Variables) containing a Personal Access Token with api scope so the pipeline can create releases and upload assets. Keep it protected.
  • The pipeline triggers on commits to main. You can change the branch or trigger manually if you prefer.

Result

  • After the pipeline completes, the DLL will be available as a release asset. Use the release raw download URL as the packageUrl in plugins.json (or keep the existing raw path under releases/ if you want to reference a static path).

If you want, I can also add a GitHub Actions workflow that does the same for GitHub releases.

Usage

  • Use the Feed/Search tabs to browse MegaKino content.
  • Open a detail page to download a film or specific episode(s).
  • The plugin writes .nfo files and poster images beside downloaded media so Jellyfin/Kodi can import metadata automatically.
  • Subscriptions can check for new episodes automatically at a configurable interval.

Security & Privacy

  • The plugin spawns a Python subprocess and performs network requests to external hosters. Ensure the server environment and configured Python interpreter are secured and trusted.
  • The plugin caches images and stores download metadata under the Jellyfin plugin configuration path.

Notes

  • The megakino Python module is not modified by this plugin; it is used as a separate subprocess.
  • The plugin is provided for educational and personal-automation use cases. Respect content owners and terms of service.

This README was generated by the project maintainer upon request.