Added youtube-tui

This commit is contained in:
ManOfGoldForever 2025-11-15 22:30:59 -05:00
parent 62f7a4728a
commit 9c82993de4
15 changed files with 393 additions and 6 deletions

View file

@ -1,5 +1,6 @@
# This file contains fish universal variable definitions.
# VERSION: 3.0
SETUVAR --export BAT_THEME:Dracula
SETUVAR __done_min_cmd_duration:10000
SETUVAR __done_notification_urgency_level:low
SETUVAR __fish_initialized:3800

View file

@ -1,7 +1,7 @@
[Settings]
gtk-theme-name=Dracula
gtk-icon-theme-name=Dracula
gtk-font-name=Adwaita Sans 11
gtk-font-name=Inter Variable 11
gtk-cursor-theme-name=Dracula
gtk-cursor-theme-size=24
gtk-toolbar-style=GTK_TOOLBAR_ICONS
@ -14,4 +14,4 @@ gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle=hintslight
gtk-xft-rgba=rgb
gtk-application-prefer-dark-theme=0
gtk-application-prefer-dark-theme=1

View file

@ -1,7 +1,7 @@
[Settings]
gtk-theme-name=Dracula
gtk-icon-theme-name=Dracula
gtk-font-name=Adwaita Sans 11
gtk-font-name=Inter Variable 11
gtk-cursor-theme-name=Dracula
gtk-cursor-theme-size=24
gtk-application-prefer-dark-theme=0
gtk-application-prefer-dark-theme=1

View file

@ -3,7 +3,7 @@ include dracula.conf
confirm_os_window_close 0
# BEGIN_KITTY_FONTS
font_family family="JetBrainsMono Nerd Font"
font_family family="Iosevka Term"
bold_font auto
italic_font auto
bold_italic_font auto

View file

@ -1 +1,10 @@
include dracula.conf
confirm_os_window_close 0
# BEGIN_KITTY_FONTS
font_family family="Source Code Pro"
bold_font auto
italic_font auto
bold_italic_font auto
# END_KITTY_FONTS

View file

@ -0,0 +1,27 @@
borders: Rounded
colors:
text: Reset
text_special: Reset
text_secondary: Reset
text_error: LightRed
outline: Reset
outline_selected: LightBlue
outline_hover: LightRed
outline_secondary: LightYellow
message_outline: '#FF7F00'
message_error_outline: LightRed
message_success_outline: LightGreen
command_capture: '#64FF64'
item_info:
tag: Gray
title: LightBlue
description: Gray
author: LightGreen
viewcount: LightYellow
length: LightCyan
published: LightMagenta
video_count: '#838DFF'
sub_count: '#65FFBA'
likes: '#C8FF81'
genre: '#FF75D7'
page_turner: Gray

View file

@ -0,0 +1,25 @@
playlist: loadpage playlist
watchhistory: loadpage watchhistory
library: loadpage library
search: loadpage search
feed: loadpage feed
cp: copy
v: version
x: quit
pause: mpv sprop pause yes ;; echo mpv Player paused
resume: mpv sprop pause no ;; echo mpv Player resumed
print: echo
channel: loadpage channel
tpause: mpv tprop pause ;; echo success Toggled player pause
video: loadpage video
bookmarks: loadpage bookmarks
h: help
back: mpv playlist-previous ;; echo mpv Skipped
exit: quit
trending: loadpage trending
next: mpv playlist-next ;; echo mpv Skipped
popular: loadpage popular
q: quit
r: reload
sub: sync
rc: reload configs

View file

@ -0,0 +1,82 @@
global:
'f':
2: run ${browser} '${url}'
'c':
2: cp ${url}
Left:
3: back ;; echo mpv Unskipped
2: mpv seek -5 ;; echo mpv Rewinded 5 seconds
Right:
3: next ;; echo mpv Skipped
2: mpv seek 5 ;; echo mpv Fast forwarded 5 seconds
'y':
0: cp ${url}
' ':
0: tpause ;; echo mpv Player pause toggled
search:
'a':
2: parrun ${terminal-emulator} mpv '${hover-url}' --no-video
'p':
2: parrun mpv '${hover-url}'
'A':
1: parrun ${terminal-emulator} mpv '${hover-url}' --no-video --loop-playlist=inf --shuffle
popular:
'p':
2: parrun mpv '${hover-url}'
'a':
2: parrun ${terminal-emulator} mpv '${hover-url}' --no-video
'A':
1: parrun ${terminal-emulator} mpv '${hover-url}' --no-video --loop-playlist=inf --shuffle
trending:
'A':
1: parrun ${terminal-emulator} mpv '${hover-url}' --no-video --loop-playlist=inf --shuffle
'a':
2: parrun ${terminal-emulator} mpv '${hover-url}' --no-video
'p':
2: parrun mpv '${hover-url}'
video: {}
playlist:
'p':
2: parrun mpv '${hover-url}'
'A':
1: parrun ${terminal-emulator} mpv '${hover-url}' --no-video --loop-playlist=inf --shuffle
'a':
2: parrun ${terminal-emulator} mpv '${hover-url}' --no-video
channel_main: {}
channel_videos:
'A':
1: parrun ${terminal-emulator} mpv '${hover-url}' --no-video --loop-playlist=inf --shuffle
'a':
2: parrun ${terminal-emulator} mpv '${hover-url}' --no-video
'p':
2: parrun mpv '${hover-url}'
channel_playlists:
'a':
2: parrun ${terminal-emulator} mpv '${hover-url}' --no-video
'A':
1: parrun ${terminal-emulator} mpv '${hover-url}' --no-video --loop-playlist=inf --shuffle
'p':
2: parrun mpv '${hover-url}'
watchhistory:
'A':
1: parrun ${terminal-emulator} mpv '${hover-url}' --no-video --loop-playlist=inf --shuffle
'a':
2: parrun ${terminal-emulator} mpv '${hover-url}' --no-video
'p':
2: parrun mpv '${hover-url}'
feed:
'A':
1: parrun ${terminal-emulator} mpv '${hover-channel-url}/videos' --no-video --loop-playlist=inf --shuffle
'p':
2: parrun mpv '${hover-video-url}'
'P':
1: parrun ${terminal-emulator} mpv '${hover-channel-url}/videos' --no-video --loop-playlist=inf --shuffle
'a':
2: parrun ${terminal-emulator} mpv '${hover-video-url}' --no-video
library:
'A':
1: parrun ${terminal-emulator} mpv '${hover-url}' --no-video --loop-playlist=inf --shuffle
'p':
2: parrun mpv '${hover-url}'
'a':
2: parrun ${terminal-emulator} mpv '${hover-url}' --no-video

View file

@ -0,0 +1,56 @@
launch_command: loadpage library ;; flush ;; history clear ;; key Esc 0 ;; key Up 0 ;; key Up 0 ;; key Left 0 ;; key Enter 0
video:
- Reload updated video: run rm '~/.cache/youtube-tui/info/${id}.json' ;; video ${id}
- Play video: parrun ${video-player} '${embed-url}'
- Play audio: mpv stop ;; resume ;; mpv sprop loop-file no ;; mpv loadfile '${embed-url}' ;; echo mpv Player started
- Play audio (loop): mpv stop ;; resume ;; mpv sprop loop-file inf ;; mpv loadfile '${embed-url}' ;; echo mpv Player started
- View channel: channel ${channel-id}
- Subscribe to channel: sync ${channel-id}
- Open in browser: parrun ${browser} '${url}'
- Toggle bookmark: togglemark ${id}
- Save video to library: bookmark ${id} ;; run rm -rf '${save-path}${id}.*' ;; parrun ${terminal-emulator} ${youtube-downloader} '${embed-url}' -o '${save-path}%(title)s[%(id)s].%(ext)s'
- Save audio to library: bookmark ${id} ;; parrun rm -rf '${save-path}${id}.*' ;; parrun ${terminal-emulator} ${youtube-downloader} '${embed-url}' -x -o '${save-path}%(title)s[%(id)s].%(ext)s'
- 'Mode: ${provider}': switchprovider
saved_video:
- Reload updated video: run rm '~/.cache/youtube-tui/info/${id}.json' ;; video ${id}
- '[Offline] Play saved file': parrun ${video-player} '${offline-path}' --force-window
- '[Offline] Play saved file (audio)': mpv stop ;; resume ;; mpv sprop loop-file no ;; mpv loadfile '${offline-path}' ;; echo mpv Player started
- '[Offline] Play saved file (audio loop)': mpv stop ;; resume ;; mpv sprop loop-file inf ;; mpv loadfile '${offline-path}' ;; echo mpv Player started
- View channel: channel ${channel-id}
- Subscribe to channel: sync ${channel-id}
- Open in browser: parrun ${browser} '${url}'
- Toggle bookmark: togglemark ${id}
- Redownload video to library: bookmark ${id} ;; run rm ${save-path}*${id}*.* ;; parrun ${terminal-emulator} ${youtube-downloader} ${embed-url} -o '${save-path}%(title)s[%(id)s].%(ext)s'
- Redownload audio to library: bookmark ${id} ;; run rm ${save-path}*${id}*.* ;; parrun ${terminal-emulator} ${youtube-downloader} ${embed-url} -x -o '${save-path}%(title)s[%(id)s].%(ext)s'
- Delete saved file: run rm ${save-path}*${id}*.*
playlist:
- Switch view: '%switch-view%'
- Reload updated playlist: run rm ~/.cache/youtube-tui/info/${id}.json ;; reload
- Play all (videos): parrun ${video-player} ${url}
- Play all (audio): mpv stop ;; resume ;; ${mpv-queuelist} ;; mpv sprop loop-playlist no ;; mpv playlist-play-index 0 ;; echo mpv Player started
- Shuffle play all (audio loop): mpv stop ;; resume ;; ${mpv-queuelist} ;; mpv sprop loop-playlist yes ;; mpv playlist-shuffle ;; mpv playlist-play-index 0 ;; echo mpv Player started
- View channel: channel ${channel-id}
- Subscribe to channel: sync ${channel-id}
- Open in browser: parrun ${browser} '${url}'
- Toggle bookmark: togglemark ${id}
- Save playlist videos to library: bookmark ${id} ;; run rm -rf '${save-path}*${id}*' ;; parrun ${terminal-emulator} bash -c "${youtube-downloader} ${all-videos} -o '"'${save-path}${title}[${id}]/%(title)s[%(id)s].%(ext)s'"'"
- Save playlist audio to library: bookmark ${id} ;; run rm -rf '${save-path}*${id}*' ;; parrun ${terminal-emulator} bash -c "${youtube-downloader} ${all-videos} -x -o '"'${save-path}${title}[${id}]/%(title)s[%(id)s].%(ext)s'"'"
- 'Mode: ${provider}': switchprovider
saved_playlist:
- Switch view: '%switch-view%'
- Reload updated playlist: run rm ~/.cache/youtube-tui/info/${id}.json ;; reload
- '[Offline] Play all (videos)': parrun ${video-player} ${save-path}*${id}*/* --force-window
- '[Offline] Play all (audio)': mpv stop ;; resume ;; ${offline-queuelist} ;; mpv sprop loop-playlist no ;; mpv playlist-play-index 0 ;; echo mpv Player started
- '[Offline] Shuffle play all (audio loop)': mpv stop ;; resume ;; ${offline-queuelist} ;; mpv sprop loop-playlist yes ;; mpv playlist-shuffle ;; mpv playlist-play-index 0 ;; echo mpv Player started
- View channel: channel ${channel-id}
- Subscribe to channel: sync ${channel-id}
- Open in browser: parrun ${browser} '${url}'
- Toggle bookmark: togglemark ${id}
- Redownload playlist videos to library: bookmark ${id} ;; run rm -rf ${save-path}*${id}* ;; parrun ${terminal-emulator} bash -c "${youtube-downloader} ${all-videos} -o '"'${save-path}${title}[${id}]/%(title)s[%(id)s].%(ext)s'"'"
- Redownload playlist audio to library: bookmark ${id} ;; run rm -rf ${save-path}*${id}* ;; parrun ${terminal-emulator} bash -c "${youtube-downloader} ${all-videos} -x -o '"'${save-path}${title}[${id}]/%(title)s[%(id)s].%(ext)s'"'"
- Delete saved files: run rm -rf ${save-path}*${id}*
channel:
- Subscribe to channel: sync ${id}
- Play all (videos): parrun ${video-player} ${url}
- Play all (audio): mpv stop ;; resume ;; mpv loadfile ${url} ;; mpv sprop loop-playlist no ;; mpv playlist-play-index 0 ;; echo mpv Player started
- Shuffle play all (audio loop): mpv stop ;; resume ;; mpv loadfile ${url} ;; mpv sprop loop-playlist yes ;; mpv playlist-shuffle ;; mpv playlist-play-index 0 ;; echo mpv Player started

View file

@ -0,0 +1,52 @@
'd':
4: RemoveWord
0: ClearHistory
Down:
2: NextEntry
0: MoveDown
Enter:
0: Select
'j':
0: MoveDown
Esc:
0: Deselect
'l':
0: MoveRight
'w':
2: RemoveWord
'v':
2: Paste
Home:
0: FirstHistory
Up:
0: MoveUp
2: PreviousEntry
'u':
2: ClearLine
Left:
0: MoveLeft
2: PreviousWord
4: Back
':':
0: StartCommandCapture
'r':
2: Reload
'k':
0: MoveUp
'a':
2: First
'e':
2: End
Right:
0: MoveRight
2: NextWord
F5:
0: Reload
Backspace:
0: Back
End:
0: ClearHistory
'q':
0: Exit
'h':
0: MoveLeft

View file

@ -0,0 +1,30 @@
mouse_support: true
invidious_instance: https://invidious.f5.si
write_config: Try
allow_unicode: true
message_bar_default: All good :)
images: Sixels
refresh_after_modifying_search_filters: true
syncing:
download_images: true
sync_channel_info: true
sync_channel_cooldown_secs: 86400
sync_videos_cooldown_secs: 600
limits:
watch_history: 50
search_history: 75
commands_history: 75
textbar_scroll_behaviour: History
image_index: 4
provider: YouTube
search_provider: RustyPipe
api_key: YOUR API KEY HERE
shell: sh
legacy_input_handling: false
env:
terminal-emulator: konsole -e
save-path: ~/.local/share/youtube-tui/saved/
browser: xdg-open
youtube-downloader: yt-dlp
download-path: ~/Downloads/%(title)s-%(id)s.%(ext)s
video-player: mpv

View file

@ -0,0 +1,88 @@
main_menu:
layout:
- type: NonCenteredRow
items:
- SearchBar
- SearchFilters
- type: CenteredRow
items:
- Library
- Feed
- History
- type: NonCenteredRow
items:
- ItemList
- type: NonCenteredRow
items:
- MessageBar
message: Loading main menu...
command: key Esc 0 ;; key Down 0 ;; key Down 0 ;; key Enter 0
feed:
layout:
- type: NonCenteredRow
items:
- SearchBar
- SearchFilters
- type: CenteredRow
items:
- Library
- Feed
- History
- type: NonCenteredRow
items:
- ChannelList
- type: NonCenteredRow
items:
- VideoList
- type: NonCenteredRow
items:
- MessageBar
message: Loading feed...
command: key Esc 0 ;; key Down 0 ;; key Down 0 ;; key Enter 0
search:
layout:
- type: NonCenteredRow
items:
- SearchBar
- SearchFilters
- type: NonCenteredRow
items:
- ItemList
- type: NonCenteredRow
items:
- MessageBar
message: Loading search results...
command: key Esc 0 ;; key Down 0 ;; key Enter 0
singleitem:
layout:
- type: NonCenteredRow
items:
- SearchBar
- SearchFilters
- type: NonCenteredRow
items:
- SingleItemInfo
- type: NonCenteredRow
items:
- MessageBar
message: Loading item details...
command: key Esc 0 ;; key Down 0 ;; key Enter 0
channeldisplay:
layout:
- type: NonCenteredRow
items:
- SearchBar
- SearchFilters
- type: CenteredRow
items:
- ChannelMain
- ChannelVideos
- ChannelPlaylists
- type: NonCenteredRow
items:
- ChannelDisplay
- type: NonCenteredRow
items:
- MessageBar
message: Loading channel details...
command: key Esc 0 ;; key Down 0 ;; key Enter 0 ;; key Up 0

View file

@ -0,0 +1,4 @@
'a':
5:
code: 'b'
modifiers: 5

View file

@ -0,0 +1,7 @@
query: ''
filters:
sort: Relevance
date: None
duration: None
type: All
page: 1

View file

@ -7,13 +7,19 @@
// custom settings, run `zed: open default settings` from the
// command palette (cmd-shift-p / ctrl-shift-p)
{
"buffer_font_family": "JetBrainsMono Nerd Font",
"ui_font_family": "Inter Variable",
"buffer_font_family": "Iosevka Term",
"vim_mode": false,
"disable_ai": true,
"telemetry": {
"diagnostics": false,
"metrics": false
},
"languages": {
"Markdown": {
"format_on_save": "on"
}
},
"icon_theme": "Zed (Default)",
"ui_font_size": 16,
"buffer_font_size": 15,