{"id":13521884,"url":"https://github.com/ankenyr/jellyfin-youtube-metadata-plugin","last_synced_at":"2026-02-03T13:12:48.343Z","repository":{"id":38323291,"uuid":"255025941","full_name":"ankenyr/jellyfin-youtube-metadata-plugin","owner":"ankenyr","description":"Youtube Metadata Plugin for Jellyfin","archived":false,"fork":false,"pushed_at":"2025-12-19T20:50:23.000Z","size":177,"stargazers_count":695,"open_issues_count":23,"forks_count":38,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-12-22T08:37:13.258Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ankenyr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-12T06:53:25.000Z","updated_at":"2025-12-20T03:31:41.000Z","dependencies_parsed_at":"2024-01-13T22:25:04.153Z","dependency_job_id":"e0289250-907e-4730-b21e-0238121b3623","html_url":"https://github.com/ankenyr/jellyfin-youtube-metadata-plugin","commit_stats":null,"previous_names":[],"tags_count":37,"template":false,"template_full_name":null,"purl":"pkg:github/ankenyr/jellyfin-youtube-metadata-plugin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ankenyr%2Fjellyfin-youtube-metadata-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ankenyr%2Fjellyfin-youtube-metadata-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ankenyr%2Fjellyfin-youtube-metadata-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ankenyr%2Fjellyfin-youtube-metadata-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ankenyr","download_url":"https://codeload.github.com/ankenyr/jellyfin-youtube-metadata-plugin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ankenyr%2Fjellyfin-youtube-metadata-plugin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28127460,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-30T02:00:05.476Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T06:00:39.145Z","updated_at":"2026-02-03T13:12:48.337Z","avatar_url":"https://github.com/ankenyr.png","language":"C#","funding_links":["https://ko-fi.com/ankenyr"],"categories":["C# #","🧩 Plugins"],"sub_categories":["🏷️ Metadata Providers"],"readme":"[![Release version](https://img.shields.io/github/v/release/ankenyr/jellyfin-youtube-metadata-plugin?color=blue\u0026label=\u0026style=for-the-badge)](https://github.com/ankenyr/jellyfin-youtube-metadata-plugin/releases/latest)\n[![CI Status](https://github.com/ankenyr/jellyfin-youtube-metadata-plugin/workflows/build/badge.svg)](https://github.com/ankenyr/jellyfin-youtube-metadata-plugin/actions?workflow=build)\n[![Donate](https://img.shields.io/badge/_-Donate-red.svg?logo=githubsponsors\u0026labelColor=555555\u0026style=for-the-badge)](https://ko-fi.com/ankenyr)\n\n# Jellyfin Youtube Metadata Plugin\n\n## Overview\n\nPlugin for [Jellyfin](https://jellyfin.org/) that retrieves metadata\nfor content from Youtube.\n\n### Features\n\n- Local provider uses the `info.json` files provided from [yt-dlp](https://github.com/yt-dlp/yt-dlp) or similar programs.\n- Remote provider uses [yt-dlp](https://github.com/yt-dlp/yt-dlp) to download `info.json` files.\n- Supports thumbnails of `jpg` or `webp` format for both channel and videos\n- Supports the following library types\n  - Movies\n  - Music Videos\n  - Shows\n- Supports ExternalID providing quick links to source of metadata.\n\n### Requirements\n\n- [yt-dlp](https://github.com/yt-dlp/yt-dlp) is required if you are using the remote provider.\n\n## Installation\n\n### Prerequirements\n\nYou are required to have yt-dlp available on the system or container Jellyfin is running on. The following are examples of how you could do this depending on your setup and are not to be considered an exhaustive list.\n\n#### Installing from package manager\n\nAPT: `sudo apt-get install yt-dlp`\nNix package manager: also called `yt-dlp`\n\n#### Installing in a container\n\n```sh\ndocker exec -it -u root jellyfin bash\ncurl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /bin/yt-dlp\nchmod a+rx /bin/yt-dlp\napt update \u0026\u0026 apt install --no-install-recommends --no-install-suggests python3\n```\n\n#### Building a docker image depending on YT-DLP\n\n```dockerfile\nFROM linuxserver/jellyfin:nightly\nRUN apt-get update \u0026\u0026 apt-get install -y \\\n    python3-pip\nRUN python3 -m pip install -U yt-dlp\n```\n\n### Installing From Repository (Recommended)\n\n1. Go to the `Admin Dashboard`.\n1. In the left navigation menu, click on `Plugins`.\n1. In the top menu, click `Repositories`.\n1. Click the `+` icon to add a new repository.\n1. `Repository Name` can be anything.\n1. `URL` must be `https://raw.githubusercontent.com/ankenyr/jellyfin-plugin-repo/master/manifest.json`\n1. If done correctly you should see a new repository on the page.\n1. In the top menu, navigate to `Catalog`.\n1. Under the `Metadata` section click on `YoutubeMetadata`.\n1. Click `Install`.\n1. Restart Jellyfin.\n1. On the left navigation menu, click on Plugins.\n1. If successful, you will see `YoutubeMetadata` with status as `Active`\n\n### Manual Installation (Hard)\n\n1. Navigate to the [releases page](https://github.com/ankenyr/jellyfin-youtube-metadata-plugin/releases).\n1. Download the latest zip file.\n1. Unzip contents into `\u003cjellyfin data directory\u003e/plugins/YoutubeMetadata`.\n1. Restart Jellyfin.\n1. On the left navigation menu, click on Plugins.\n1. If successful, you will see `YoutubeMetadata` with status as `Active`\n\n## Usage\n\n### File Naming Requirements\n\nAll media needs to have the ID embeded in the file name within square brackets.\nThe following are valid examples of a channel and video.\n- `3Blue1Brown - NA - 3Blue1Brown_-_Videos [UCYO_jab_esuFRV4b17AJtAw].info.json`\n- `3Blue1Brown - 20211023 - A_few_of_the_best_math_explainers_from_this_summer [F3Qixy-r_rQ].mkv`\n\n`info.json` and image files need to have the same file name as the media file. As an example, this would cause a breakage\n- `3Blue1Brown - 20211023 - A_few_of_the_best_math_explainers_from_this_summer [F3Qixy-r_rQ].mkv`\n- `3Blue1Brown - 20211023 [F3Qixy-r_rQ].info.json`\n\nThe proper naming format is the default when using [yt-dlp](https://github.com/yt-dlp/yt-dlp)\nand is also enforced in [TheFrenchGhosty's Ultimate YouTube-DL Scripts Collection](https://github.com/TheFrenchGhosty/TheFrenchGhostys-Ultimate-YouTube-DL-Scripts-Collection) which I highly recommend.\n\n### Enabling Provider\n\n1. Navigate to your `Admin Dashboard`.\n1. On the left navigation menu, click `Libraries`.\n1. Click on ![Threedots](docs/threedots.png) for a supported library type.\n1. Click `Manage library`.\n1. Click the checkbox next to `YoutubeMetadata` for each downloader or fetcher you wish to enable. In the image below you can see two enabled.\n![Library Fetchers](docs/library_fetchers.png)\n1. Click `OK`.\n1. Click `Scan All Libraries`.\n\n### Providing Cookies to YT-DLP\n\n***Warning*** your cookie grants access to accounts the cookie is granted for. Please protect this file if you decide to use it.\nPlacing a file named `cookies.txt` into the `\u003cjellyfin data directory\u003e/plugins/YoutubeMetadata` plugin directory will enable YT-DLP to start using your cookie.\n\n## Contributing\n\nFor building from source, contributing and release details see [CONTRIBUTING.md](CONTRIBUTING.md).\n\n## Donations\n\nIf this plugin helps you, please consider a donation!\nYou can use my [ko-fi](https://ko-fi.com/ankenyr) link.\nIf you would rather donate in some way not supported yet, let me know how you would like to donate.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fankenyr%2Fjellyfin-youtube-metadata-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fankenyr%2Fjellyfin-youtube-metadata-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fankenyr%2Fjellyfin-youtube-metadata-plugin/lists"}