add ytfp (youtube search script)
This commit is contained in:
parent
600d3ddb51
commit
e45d56e915
2 changed files with 47 additions and 0 deletions
|
|
@ -9,6 +9,7 @@
|
||||||
./fish.nix
|
./fish.nix
|
||||||
./kitty.nix
|
./kitty.nix
|
||||||
./neovim.nix
|
./neovim.nix
|
||||||
|
./ytfp.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
|
|
|
||||||
46
home/sckova/terminal/ytfp.nix
Normal file
46
home/sckova/terminal/ytfp.nix
Normal file
|
|
@ -0,0 +1,46 @@
|
||||||
|
# full credit to u/SupermarketAntique32 on reddit:
|
||||||
|
# https://www.reddit.com/r/commandline/comments/1sd26he/youtube_search_and_play_in_20_lines_of_bash/
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
(writeShellApplication {
|
||||||
|
name = "ytfp";
|
||||||
|
runtimeInputs = [
|
||||||
|
bash
|
||||||
|
curl
|
||||||
|
fzf
|
||||||
|
yt-dlp
|
||||||
|
chafa
|
||||||
|
mpv
|
||||||
|
];
|
||||||
|
text = ''
|
||||||
|
# `ytfp`: Search YouTube video using `fzf` and play it in `mpv`
|
||||||
|
|
||||||
|
SEARCH_VID() {
|
||||||
|
yt-dlp "https://www.youtube.com/results?search_query=$1" \
|
||||||
|
--flat-playlist --playlist-items 1:20 --print \
|
||||||
|
$'%(thumbnails.0.url)s\t%(title)s\t%(channel)s\t%(view_count)s\t%(url)s' \
|
||||||
|
| grep --extended-regexp --invert-match 'playlist|channel'
|
||||||
|
}
|
||||||
|
RENDER_VID_INFO() {
|
||||||
|
curl --silent "$1" | chafa --size=x14 --clear
|
||||||
|
echo "Title : $2"
|
||||||
|
echo "Channel : $3"
|
||||||
|
echo "Views : $4"
|
||||||
|
}
|
||||||
|
export -f SEARCH_VID RENDER_VID_INFO
|
||||||
|
|
||||||
|
fzf --preview-window down --layout reverse --disabled --with-shell 'bash -c' \
|
||||||
|
--bind 'start:reload:SEARCH_VID fzf' \
|
||||||
|
--bind 'change:reload:sleep 0.3; SEARCH_VID {q} || true' \
|
||||||
|
--bind 'load:first' \
|
||||||
|
--delimiter '\t' --with-nth 2 \
|
||||||
|
--preview 'RENDER_VID_INFO {1} {2} {3} {4}' \
|
||||||
|
--bind 'enter:execute-silent(mpv {5})'
|
||||||
|
'';
|
||||||
|
})
|
||||||
|
];
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue