GithubHelp home page GithubHelp logo

jellyfindownloader's Introduction

Jellyfin Downloader

This is a simple tool written in Go to download a Series or a single season from a given jellyfin instance.

Disclaimer

Since I've written this in order to learn go, not everything might be very written as it should. Also keep in mind that not everything might be work as expected.

Usage

You can use multiple methods to specify the series you want to download.

The simplest method is to just specify a name of the series you want to get:

jellyfindownloader -url <BaseURL of the JF Server> -name <Partial or Full Name of the Show>

Another way is to specify the series Id. To obtain the Id of the show you want to download, you first have to navigate to the shows main page in the jellyfin web client. After opening the shows main page, you can extract the seriesId from the URL:

http://localhost:8096/web/index.html#!/details?

id=e9c503bbdb25e07b71e0168298402e18 <-- This is the ID you need to copy

&context=tvshows&serverId=da596f62e19b4ee296431dc373bad050

To download all episodes of a given series, call the tool like so:

jellyfindownloader \
    -url <BaseURL of the JF Server> \
    -seriesid <ID of the series you want to download> 

If you only want to download a specific season, you have to find out the season Id first. You can also find the season ID in the URL when clicking on the season you want to download:

http://localhost:8096/web/index.html#!/details?

id=5a0e9809ef72219c159e130235e9940d <-- This is the ID you need to copy&

serverId=da596f62e19b4ee296431dc373bad050

To download a specific episode, you need to call the tool like this:

jellyfindownloader \
    -url <BaseURL of the JF Server> \
    -seriesid <ID of the series you want to download> \
    -seasonid <ID of the season to download>

You can also pass additional argument such as the username or password. If those are passed, you do not need to provide them when running the script. Use -h for more information:

./jellyfindownloader -h
Usage of /tmp/go-build3025870274/b001/exe/main:
  -name string
        Name of the Show or Movie you want to download.
  -password string
        Passwort for the Jellyfin instance. If not provided, username will be prompted.
  -seasonid string
        If given, only the episodes with the provided season Id will be downloaded
  -seriesid string
        ID which points to the series which should be downloaded
  -url string
        Base URL which points to the Jellyfin Instance
  -username string
        Username used to login to the Jellyfin instance. If not provided, password will be prompted.

Environment Variables

Currently, there are the following environment variables which can be set before executing this tool:

JF_USERNAME

Provide a username which should be used to log into the provided jellyfin instance.


JF_PASSWORD

Provide a password which should be used to log into the provided jellyfin instance.

Todo

  • Instead of fiddling with Ids, one should only provide the series name and episode number which should be downloaded
  • Retrieve the credentials via an environnement variable
  • Be able to search and download any media types, starting with movies
  • Implement a selection for different seasons
  • There are probably some other things which should be done whose will come to my mind later on

jellyfindownloader's People

Contributors

r0bc94 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

devusb mbu147

jellyfindownloader's Issues

Authentication Failed error

After it asks for username and password I get Authentication Failed! Maybe wrong credentials provided?
Tested Credentials and they are correct

Feature: Specify Text File for Batch Download

Currently, you are only able to download a series but not for example multiple movies from a Server. It would be great if some could provide a simple text file with for example the names of series and movies which should be downloaded.

Refactoring of the Item Selection

Currently, the whole Item selection is done in the main Method. Also, it is kida tied to the media type. For example, there are Methods such as selectMovie() or selectSeries() which makes everything kinda static.

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.