Skip to content

LukasArmstrong/PlaylistPro

Repository files navigation

Issues GPL License LinkedIn


Logo

PlaylistPro

Simple web app that sorts youtube watchlater by duration and assigned priority.
Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

This started because I wanted to sort my watch later list on youtube by duration with some key execepts to priority, some videos being in a series, some creators release order mattering, and one-off videos being follow up to longer videos. After I accomplish this goal and refactored the code a bit, I decided to keep enhancing the project. There are lots of little things I would like to add to make this a poweruser tool. However, unless something changes with the Youtube API quota limit, I doubt very many people will able to use this project in it's entirety. I would consider this project in its infancy still, but others are welcome to fork or make suggestions for changes.

(back to top)

Built With

  • Python
  • Flask
  • React
  • YoutubeAPI
  • MariaDB

(back to top)

Getting Started

Prerequisites

  • python
  • pip
    • Download and follow documentation
    • Make sure pip is up to date with the follow command:
      pip install --upgrade pip
  • Client_secret.json file
    • Go to Google's Cloud Console
    • Make a project and make sure youtube's v3 api is enabled.
    • Create OAuth 2.0 Client IDS under APIs & Services > Credentials.
  • MariaDB Database
    • Please see schema under images.

Installation

  1. Clone the repo
    git clone https://github.com/LukasArmstrong/Youtube-Playlist-Organizer.git
  2. Install required modules
    pip install -r requirements.txt
  3. Place client_secret file in the directory
  4. Update config.yaml
  5. Start webserver
    python3 YoutubeWebServer.py

(back to top)

Usage

Admitedly, this where most of the work needs to be done. Currently, to run the sorting algorithm, you go to go to:

  • http://<YOUR_HOST_IP>/sort

However before the first sort, you'll need to get a token. This is done by:

  • http://<YOUR_HOST_IP>/renew

(back to top)

Roadmap

  • Add Getting Started Section to README
  • Add usage section to README
  • Proper logging support
  • Create frontend
    • Login with Oauth
    • button for sorting
    • GUI to add creator/keywords
    • GUI to delete creator/keywords
    • GUI to set/update creator/keyword priority
  • Auto add videos to watchlater queue. Hopefully in correct position
    • Tool to scrape youtube subscriptions
  • Smarter use of Quota limit data
  • Track upload time to predict when creator videos should release
  • Scrape youtube channels to collect data on publish times
  • Look into token renewal process. See if automation can be preformed
  • Make youtube play update function for efficient

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the GPL License. See LICENSE.txt for more information.

(back to top)

Contact

Lukas Armstrong - PlaylistPro@LukasArmstrong.io

Project Link: https://github.com/LukasArmstrong/PlaylistPro

(back to top)

(back to top)

About

Simple web flask server that sorts youtube watchlater by duration

Resources

License

GPL-2.0, GPL-3.0 licenses found

Licenses found

GPL-2.0
LICENSE
GPL-3.0
LICENSE.txt

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors