Kyle Yasuda 3bbbcae0b8
All checks were successful
Luacheck / luacheck (push) Successful in 3s
Feature: Add Support for mpv-youtube-queue-server (#20)
* Add history db

- Sends video data to backend server on configured port and inserts into
a mysql database

* add option to disable history db function

* Squash bugs

- update strip command to remove newline characters
- add history db function call to playback restart listener to catch
first video

* squash more bugs

- add debug
- fix history db for repeated calls and first play
- fix is file
- change print current video to use full file path if showing a file
- remove unused functions
- fix video title when selecting video from list

* disable history db by default

- change default config
- add back line to prevent from running when disabled

* appease the linter

* update readme

* add load-file even listener for adding to history db

* add save/load queue functions

* fix load_queue command

- fix parsing/conversion to table from json list

* update readme

* add new keybinding options

* add keybinding options

* disable debug and clean up code

- disable debug mode
- sanitize clipboard content
- clean up error handling
2024-09-09 00:15:41 -07:00
2023-08-06 03:13:18 -07:00
2023-08-13 18:02:55 -07:00
2023-08-02 10:35:46 -07:00

mpv-youtube-queue

A Lua script that replicates and extends the YouTube "Add to Queue" feature for mpv

mpv-youtube-queue image

Features

  • Interactive Queue Management: A menu-driven interface for adding, removing, and rearranging videos in your queue
  • yt-dlp Integration: Gathers video info and allows downloading with any link supported by yt-dlp
  • Internal Playlist Integration: Seamlessly integrates with mpv's internal playlist for a unified playback experience
  • Customizable Keybindings: Assign your preferred hotkeys to interact with the currently playing video and queue

Requirements

This script requires the following software to be installed on the system

  • One of xclip, wl-clipboard, or any command-line utility that can paste from the system clipboard
    • Windows users can utilize Get-Clipboard from powershell by setting the clipboard_command in mpv-youtube-queue.conf file to the following: clipboard_command=powershell -command Get-Clipboard
  • yt-dlp

Installation

  • Copy mpv-youtube-queue.lua script to your ~~/scripts directory
    • ~/.config/mpv/scripts on Linux
    • %APPDATA%\mpv\scripts on Windows
  • Optionally copy mpv-youtube-queue.conf to the ~~/script-opts directory
    • ~/.config/mpv/script-opts on Linux
    • %APPDATA%\mpv\script-opts on Windows to customize the script configuration as described in the next section

Configuration

Default Keybindings

  • add_to_queue - ctrl+a: Add a video in the clipboard to the queue
  • download_current_video - ctrl+d: Download the currently playing video
  • download_selected_video - ctrl+D: Download the currently selected video in the queue
  • move_cursor_down - ctrl+j: Move the cursor down one row in the queue
  • move_cursor_up - ctrl+k- Move the cursor up one row in the queue
  • load_queue - ctrl+l - Appends the videos from the most recent save point to the queue
  • move_video - ctrl+m: Mark/move the selected video in the queue
  • play_next_in_queue - ctrl+n: Play the next video in the queue
  • open_video_in_browser - ctrl+o: Open the currently playing video in the browser
  • open_channel_in_browser - ctrl+O: Open the channel page for the currently playing video in the browser
  • play_previous_in_queue - ctrl+p: Play the previous video in the queue
  • print_current_video - ctrl+P: Print the name and channel of the currently playing video to the OSD
  • print_queue - ctrl+q: Print the contents of the queue to the OSD
  • save_queue - ctrl+s: Saves the remainder of the queue (excluding the currently playing video) to the database for retrevial at a later time
  • remove_from_queue - ctrl+x: Remove the currently selected video from the queue
  • play_selected_video - ctrl+ENTER: Play the currently selected video in the queue

Default Options

  • browser - firefox: The browser to use when opening a video or channel page
  • clipboard_command - xclip -o: The command to use to get the contents of the clipboard
  • cursor_icon - ➤: The icon to use for the cursor
  • display_limit - 10: The maximum amount of videos to show on the OSD at once
  • download_directory - ~/videos/YouTube: The directory to use when downloading a video
  • download_quality 720p: The maximum download quality
  • downloader - curl: The name of the program to use to download the video
  • font_name - JetBrains Mono: The name of the font to use
  • font_size - 12: Size of the font
  • marked_icon - ⇅: The icon to use to mark a video as ready to be moved in the queue
  • menu_timeout - 5: The number of seconds until the menu times out
  • show_errors - yes: Show error messages on the OSD
  • ytdlp_file_format - mp4: The preferred file format for downloaded videos
  • ytdlp_output_template - %(uploader)s/%(title)s.%(ext)s: The yt-dlp output template string
    • Full path with the default download_directory is: ~/videos/YouTube/<uploader>/<title>.<ext>
  • use_history_db - no: Enable watch history tracking through integration with mpv-youtube-queue-server
  • backend_host: ip or hostname of the backend server
  • backend_port: port to connect to for the backend server

License

This project is licensed under the terms of the GPLv3 license.

Description
YouTube 'Add To Queue' for MPV
Readme 3.6 MiB
Languages
Lua 100%