Git Product home page Git Product logo

plexytdl's Introduction

Plex YouTube Downloader (YTDL)

A simple YouTube downloader that works with Plex's local media agent.

But why?

I have very slow internet so I can only watch 1080p30 or 720p60 content. So, if I want to watch anything at its full resolution I either get buffering or have to go to a lower resolution. This means I can let the downloader get the latest videos overnight then watch the videos in 4k or whatever resolution I want.

Setup

Run main.py and follow the setup process. You will need a YouTube API Key (v3) for the setup. If you don't have one already, follow this guide to get one: https://www.slickremix.com/docs/get-api-key-for-youtube/

Currently, the time between scans does not work, but it is on my to-do list.

From there, if you want to download more than one YouTube channel's videos, just go to settings.json and add to the channel_ids list.

Download between hours

If you would like the downloader to only work in the night, change the download_hours variable in settings to true. By default, the downloader does not download between set hours and only runs once. But if it is enabled, it will download between time_start and time_end.

After Setup

After you've set up the program, each time you want to download videos, just run main.py or set up the download between hours feature as explained above.

Exceptions

If you would like some videos to be in a different folder to those of the main channel, this is where exceptions come in. For example, LinusTechTips have "WAN Show" videos and they specify this with - WAN Show at the end. So, the exceptions will search for any video containing WAN Show and put it in a new folder, in my case The WAN Show.

So, how do you set one up?

In settings there is a section that says, this is the example from above.

"exceptions": [
  {
    "keyword": "WAN Show",
    "new_channel_name": "The WAN Show"
  }
]

You can copy, or replace this template by adding a ',' after the '}' and adding "keyword" and "new_channel_name" again.

Future Plans

  • Add temp video location
  • Separate file for scanning
  • JSON file for settings configuration
  • JSON file for video information
  • Option for subtitles
  • Remove the need for a plex agent and just rely on metadata.
  • Option to automatically download channel art
  • Add time for downloading (such as night only)
  • Don't delete video.json each time scanning is triggered, only append to it
  • Auto scan after set duration.

plexytdl's People

Stargazers

Jake avatar b avatar Harriet 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.