mirror of
https://github.com/ksyasuda/mpv-youtube-queue.git
synced 2024-10-28 04:44:11 -07:00
YouTube 'Add To Queue' for MPV
fa2014acd6
All checks were successful
Luacheck / luacheck (push) Successful in 4s
* convert get_video_info to use mp functions and add menu_timeout option * add menu_timeout config option * fix add_to_queue not returning when given invalid url or path |
||
---|---|---|
.assets | ||
.github/workflows | ||
LICENSE | ||
mpv-youtube-queue.conf | ||
mpv-youtube-queue.lua | ||
README.md |
mpv-youtube-queue
A Lua script that implements the YouTube 'Add to Queue' functionality for mpv
Features
- Add videos to a queue from the clipboard
- Works with links from any site supported by yt-dlp
- An interactive menu to show the queue, to select a video to play, or to edit the order of the queue
- Customizable keybindings to interact with the currrently playing video and the queue
- Open the URL or channel page of the currently playing video in a new browser tab
- Download a video in the queue using yt-dlp
- Customizable download options
- Integrates with the internal mpv playlist
Notes
- This script uses the Linux
xclip
utility to read from the clipboard. If you're on macOS or Windows, you'll need to adjust theclipboard_command
config variable in mpv-youtube-queue.conf - When adding videos to the queue, the script fetches the video name using
yt-dlp
. Ensure you haveyt-dlp
installed and in your PATH.
Requirements
This script requires the following software to be installed on the system
Installation
- Copy the
mpv-youtube-queue.lua
script to your~~/scripts
directory (~/.config/mpv
on Linux) - Optionally copy the
mpv-youtube-queue.conf
to the~~/script-opts
directory 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 queuedownload_current_video - ctrl+d
: Download the currently playing videodownload_selected_video - ctrl+D
: Download the currently selected video in the queuemove_cursor_down - ctrl+j
: Move the cursor down one row in the queuemove_cursor_up - ctrl+k
- Move the cursor up one row in the queuemove_video - ctrl+m
: Mark/move the selected video in the queueplay_next_in_queue - ctrl+n
: Play the next video in the queueopen_video_in_browser - ctrl+o
: Open the currently playing video in the browseropen_channel_in_browser - ctrl+O
: Open the channel page for the currently playing video in the browserplay_previous_in_queue - ctrl+p
: Play the previous video in the queueprint_current_video - ctrl+P
: Print the name and channel of the currently playing video to the OSDprint_queue - ctrl+q
: Print the contents of the queue to the OSDremove_from_queue - ctrl+x
: Remove the currently selected video from the queueplay_selected_video - ctrl+ENTER
: Play the currently selected video in the queue
Default Option
browser - firefox
: The browser to use when opening a video or channel pageclipboard_command - xclip -o
: The command to use to get the contents of the clipboardcursor_icon - ➤
: The icon to use for the cursordisplay_limit - 10
: The maximum amount of videos to show on the OSD at oncedownload_directory - ~/videos/YouTube
: The directory to use when downloading a videodownload_quality 720p
: The maximum download qualitydownloader - curl
: The name of the program to use to download the videofont_name - JetBrains Mono
: The name of the font to usefont_size - 12
: Size of the fontmarked_icon - ⇅
: The icon to use to mark a video as ready to be moved in the queuemenu_timeout - 5
: The number of seconds until the menu times outshow_errors - yes
: Show error messages on the OSDytdlp_file_format - mp4
: The preferred file format for downloaded videosytdlp_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>
- Full path with the default
License
This project is licensed under the terms of the GPLv3 license.