YouTube 'Add To Queue' for MPV
Go to file
ksyasuda 89cf199a87
Some checks failed
Luacheck / luacheck (push) Failing after 4s
add load-file even listener for adding to history db
2024-09-06 02:43:09 -07:00
.assets update image 2023-08-06 03:13:18 -07:00
.github/workflows update luacheck workflow 2023-08-09 01:21:40 -07:00
.gitignore Fix move video (#17) 2023-08-13 18:02:55 -07:00
LICENSE initial commit for mpv-youtube-queue 2023-08-02 10:35:46 -07:00
mpv-youtube-queue.conf disable history db by default 2024-09-05 23:17:03 -07:00
mpv-youtube-queue.lua add load-file even listener for adding to history db 2024-09-06 02:43:09 -07:00
README.md update readme 2024-09-05 23:30:17 -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: Works with any link supported by yt-dlp and supports downloading a supported video in the queue
  • 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
  • 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
  • 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.