/viewtube

A YouTube playlist manager.

Primary LanguageTypeScriptMIT LicenseMIT

ViewTube

ViewTube is a YouTube playlist application to manage and watch playlists on YouTube. The main purpose of this application is to manage watched videos (partial or full) whether it is a sequential playlist or non-sequential. Having the playlists you are watching currently from YouTube in one place can be helpful and easier to keep up with.

Features

  • Add any YouTube playlist
  • Partially watch videos to resume later
  • Sort playlists alphabetically by channel or playlist name
  • Mark playlist as a sequential or non-sequential playlist
  • Change behavior of all playlist types individually
  • Backup playlist data and settings (from file)
  • Restore playlist data and settings (from file)

Installation

Support for Windows, Mac OS, Linux. Currently a binary file is not made. To run the program follow the following:

  1. yarn install
  2. yarn run electron:serve
  3. yarn run ng:serve

MVP List

  • Development mode IPC communication
  • Production mode index.html loading
  • Read existing tokens from file
  • Refresh the token if it has expired
  • Production mode scripts for mac, windows, linux
  • Create icon for release
  • Get account name for top left box
  • pass on OAuth2 Client to FE, and use as-is
  • Search for playlists
  • Save files to 'Documents/viewtube'
  • Decode ID JTW token to get name and email
  • Add logout option
  • Load playlist videos for "resume" on homepage (if not loaded)
  • Get account playlists
  • Store playlist in JSON form in neDB
  • Store watched videos in NEDB (playlistId, videoId, watchedPercentage)
  • Display watched percentages on the UI (playlist-view)
  • Sequential Playlists - load next video automatically
    • Handle the following:
    • Mark videos watched with for ones before
    • Mark videos next as unwatched
    • Load next video at stopped time when Resumed
    • Load next page if next video is not available
  • Random Playlists - - [x] Handle loading from current page - [x] After exhaustion, load from next page [x] Playlist summary next to resume
  • Add settings page - [ ] Default playlist type (sequential or random) - [ ] Export data to file - [ ] Import data from file - [ ] Mark videos watched after x percentage - [ ] Default playlist type (random, sequential) - [ ] auto-play videos
  • Cache youtube calls

Nice to Have list

  • Google Drive backup integration
  • Switch to Yarn
  • Switch to React.js