Skip to content

A plex direct downloader, with an emphasis on fetching media that has not been modified.

License

Notifications You must be signed in to change notification settings

danielhoherd/plexdl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

b53cc8a · Jun 25, 2024
Feb 20, 2024
Dec 30, 2022
Jun 25, 2024
Jun 25, 2024
Apr 11, 2022
Oct 24, 2020
Jan 29, 2019
Sep 9, 2022
Jun 25, 2024
Jun 21, 2019
Oct 5, 2023
Sep 26, 2020
Jun 25, 2024
Jan 24, 2022
May 19, 2019
Jun 25, 2024
Jun 25, 2024

Repository files navigation

plexdl

The purpose of this tool is to allow you to download non-transcoded media from Plex Media Server shares.

Run via Docker

export PLEXDL_USERNAME=whoever
export PLEXDL_PASSWORD=hunter2
alias plexdl="docker run --rm -e PLEXDL_USERNAME -e PLEXDL_PASSWORD quay.io/danielhoherd/plexdl plexdl --show-ratings"
plexdl "some movie title"

Local Installation

git clone https://github.com/danielhoherd/plexdl.git
pip3 install ./plexdl

Usage

$ plexdl --help
Usage: plexdl [OPTIONS] COMMAND [ARGS]...

  plexdl CLI.

Options:
  --install-completion [bash|zsh|fish|powershell|pwsh]
                                  Install completion for the specified shell.
  --show-completion [bash|zsh|fish|powershell|pwsh]
                                  Show completion for the specified shell, to
                                  copy it or customize the installation.
  --help                          Show this message and exit.

Commands:
  get-server-info  Show info about servers available to your account.
  search           Search for media in servers that are available to your...

$ plexdl get-server-info --help
Usage: plexdl get-server-info [OPTIONS] [USERNAME] [PASSWORD] [DEBUG]

  Show info about servers available to your account.

Arguments:
  [USERNAME]  [env var: PLEXDL_USERNAME]
  [PASSWORD]  [env var: PLEXDL_PASSWORD]
  [DEBUG]     [env var: PLEXDL_DEBUG;default: False]

Options:
  --help  Show this message and exit.

$ plexdl search --help
Usage: plexdl search [OPTIONS] TITLE

  Search for media in servers that are available to your account.

Arguments:
  TITLE  [env var: PLEXDL_TITLE;required]

Options:
  -u, --username TEXT  [env var: PLEXDL_USERNAME; required]
  -p, --password TEXT  [env var: PLEXDL_PASSWORD; required]
  --item-prefix TEXT   String to prefix to each item (eg: curl -o)
  --show-summary       Show media summary for each result
  --show-ratings       Show ratings for each result
  --show-metadata      Show file and codec metadata for each file in each result
  --include-relays     Output relay servers along with direct servers
  -v, --verbose
  --debug
  --help               Show this message and exit.
$ plexdl search living
===============================================================================
Server: "demo-server-1"
-------------------------------------------------------------------------------
Movie: Night of the Living Dead
   "Night of the Living Dead.mkv" "https://...some_url..."
$ plexdl search --show-ratings --show-metadata --show-summary living
===============================================================================
Server: "demo-server-2"
-------------------------------------------------------------------------------
Movie: Night of the Living Dead
Year: 1968
Studio: Image Ten
Summary: A ragtag group of Pennsylvanians barricade themselves in an old farmhouse to remain safe from a bloodthirsty, flesh-eating breed of monsters who are ravaging the East Coast of the United States.
Content rating: NR
Audience rating: 7.7
Critic rating: 5.5
(1280x672, h264, ac3, 4208kbps)
   "Night of the Living Dead.mkv" "https://...some_url..."

TODO

  • cleanup
  • tests
  • add option to search only for specific types of content
  • add option to search only specific serveres
  • don't try to name files with characters that would be invalid