Coder Social home page Coder Social logo

xuhao61 / jellyfin-youtube-metadata-plugin Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ankenyr/jellyfin-youtube-metadata-plugin

0.0 0.0 0.0 151 KB

Youtube Metadata Plugin for Jellyfin

License: GNU Affero General Public License v3.0

C# 98.65% HTML 1.35%

jellyfin-youtube-metadata-plugin's Introduction

Release version CI Status Donate

Jellyfin Youtube Metadata Plugin

Overview

Plugin for Jellyfin that retrieves metadata for content from Youtube.

Features

  • Local provider uses the info.json files provided from yt-dlp or similar programs.
  • Remote provider uses yt-dlp to download info.json files.
  • Supports thumbnails of jpg or webp format for both channel and videos
  • Supports the following library types
    • Movies
    • Music Videos
    • Shows
  • Supports ExternalID providing quick links to source of metadata.

Requirements

  • yt-dlp is required if you are using the remote provider.

Installation

Prerequirements

You 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.

Installing from package manager

sudo apt-get install yt-dlp

Installing in a container

$ docker exec -it -u root jellyfin bash
$ curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /bin/yt-dlp
$ chmod a+rx /bin/yt-dlp
$ apt update && apt install --no-install-recommends --no-install-suggests python3

Building a docker image depending on YT-DLP

FROM linuxserver/jellyfin:nightly
RUN apt-get update && apt-get install -y \
    python3-pip
RUN python3 -m pip install -U yt-dlp

Installing From Repository (Recommended)

  1. Go to the Admin Dashboard.
  2. In the left navigation menu, click on Plugins.
  3. In the top menu, click Repositories.
  4. Click the + icon to add a new repository.
  5. Repository Name can be anything.
  6. URL must be https://raw.githubusercontent.com/ankenyr/jellyfin-plugin-repo/master/manifest.json
  7. If done correctly you should see a new repository on the page.
  8. In the top menu, navigate to Catalog.
  9. Under the Metadata section click on YoutubeMetadata.
  10. Click Install.
  11. Restart Jellyfin.
  12. On the left navigation menu, click on Plugins.
  13. If successful, you will see YoutubeMetadata with status as Active

Manual Installation (Hard)

  1. Navigate to the releases page.
  2. Download the latest zip file.
  3. Unzip contents into <jellyfin data directory>/plugins/YoutubeMetadata.
  4. Restart Jellyfin.
  5. On the left navigation menu, click on Plugins.
  6. If successful, you will see YoutubeMetadata with status as Active

Usage

File Naming Requirements

All media needs to have the ID embeded in the file name within square brackets. The following are valid examples of a channel and video.

  • 3Blue1Brown - NA - 3Blue1Brown_-_Videos [UCYO_jab_esuFRV4b17AJtAw].info.json
  • 3Blue1Brown - 20211023 - A_few_of_the_best_math_explainers_from_this_summer [F3Qixy-r_rQ].mkv

info.json and image files need to have the same file name as the media file. As an example, this would cause a breakage

  • 3Blue1Brown - 20211023 - A_few_of_the_best_math_explainers_from_this_summer [F3Qixy-r_rQ].mkv
  • 3Blue1Brown - 20211023 [F3Qixy-r_rQ].info.json

The proper naming format is the default when using yt-dlp and is also enforced in TheFrenchGhosty's Ultimate YouTube-DL Scripts Collection which I highly recommend.

Enabling Provider

  1. Navigate to your Admin Dashboard.
  2. On the left navigation menu, click Libraries.
  3. Click on Threedots for a supported library type.
  4. Click Manage library.
  5. Click the checkbox next to YoutubeMetadata for each downloader or fetcher you wish to enable. In the image below you can see two enabled. Library Fetchers
  6. Click OK.
  7. Click Scan All Libraries.

Providing Cookies to YT-DLP

Warning your cookie grants access to accounts the cookie is granted for. Please protect this file if you decide to use it. Placing a file named cookies.txt into the <jellyfin data directory>/plugins/YoutubeMetadata plugin directory will enable YT-DLP to start using your cookie.

Build and Installing from source

  1. Clone or download this repository.
  2. Ensure you have .NET Core SDK setup and installed.
  3. Build plugin with following command.
    dotnet publish --configuration Release --output bin
    
  4. Create folder named YoutubeMetadata in the plugins directory inside your Jellyfin data directory. You can find your directory by going to Dashboard, and noticing the Paths section. Mine is the root folder of the default Metadata directory.
    # mkdir <Jellyfin Data Directory>/plugins/YoutubeMetadata/
    
    
  5. Place the resulting files from step 3 in the plugins/YoutubeMetadata folder created in step 4.
    # cp -r bin/*.dll <Jellyfin Data Directory>/plugins/YoutubeMetadata/`
    
  6. Be sure that the plugin files are owned by your jellyfin user:
    # chown -R jellyfin:jellyfin /var/lib/jellyfin/plugins/YoutubeMetadata/
    
  7. If performed correctly you will see a plugin named YoutubeMetadata in Admin -> Dashboard -> Advanced -> Plugins.

Donations

If this plugin helps you, please consider a donation! You can use my ko-fi link. If you would rather donate in some way not supported yet, let me know how you would like to donate.

jellyfin-youtube-metadata-plugin's People

Contributors

ankenyr avatar 7596ff avatar jgoguen avatar oddstr13 avatar simcop2387 avatar thefrenchghosty avatar krutburken avatar wjbridge avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.