updated README

This commit is contained in:
Emma Tebibyte 2023-12-12 22:42:25 -07:00
parent 70127c6918
commit bde3e58618
Signed by: emma
GPG Key ID: 06FA419A1698C270
2 changed files with 49 additions and 23 deletions

56
README
View File

@ -4,42 +4,66 @@ viewing and interacting with YouTube videos.
Dependencies:
- curl(1)
- jq(1)
- mpv(1)
- yt-dlp(1)
Variables:
Environment Variables:
$DEBUG
- Set this variable to get debug output to stderr
$PLAYER
- Set this variable to a video player that can utilize yt-dlp to playback
videos from YouTube
$YTPICK
- Set this variable to a dmenu-compatible picker for use with the pick
subcommand.
subcommand
$YT_PL_DIR
- Set this variable to the directory where playlists should be stored; defaults
to $XDG_DATA_HOME/yt
Usage:
yt add | archive | cache | clone | music | pick | play | queue | verify
yt add | archive | cache | clone | list | localsearch | new | pick | play | queue | search | sync | verify
add uri file
add uri playlist
- Adds a video by URI to a playlist
archive uri...
- Archives a video on the Wayback Machine
- Archives videos on the Wayback Machine
cache uri...
- Caches a video title
cache video...
- Caches video titles
clone uri file
clone uri [playlist]
- Clones a YouTube playlist to a file
music uri...
- Downloads a video as audio, splitting it by chapter
list
- lists local playlists
pick file...
localsearch
- uses $YTPICK to search for videos from the local cache
new playlist...
- creates new playlists
pick playlist...
- Opens $PICKER to a list of videos in a file
play uri...
- Plays a video, caching its title first
- Plays videos, caching their titles first
queue file...
- Queues a playlist
queue playlist...
- Queues playlists
verify file...
search term [count]
- Searches YouTube for term and returns count results
sync [playlist]
- If a playlist is specified, sync that playlist with its remote YouTube
counterpart; otherwise, sync all playlists with remotes
verify playlist...
- Verifies that all the videos in a playlist are existent on YouTube, and if
they arent, attempts to replace the URI with one from the Wayback Machine. If
the video isnt available on the Wayback Machine, it comments the video link. It

16
yt
View File

@ -47,7 +47,7 @@ P="$(printf '%s\n' "$YT_PL_DIR" | sed 's;\/;\\/;g')"
argv0="$0"
com="$1"
u='add | archive | clone | list | new | pick | play | search | sync | verify'
u='add | archive | clone | list | localsearch | new | pick | play | search | sync | verify'
FMT='%(title)s %(channel)s (%(duration>%H:%M:%S)s) [%(webpage_url)s]'
WBAPI='https://archive.org/wayback/available?url='
@ -117,7 +117,7 @@ clone() { # clones a YouTube playlist to a file
n=1
while test -z "$title"; do
title="$(yt-dlp -s -I "$n" --print '%(playlist)s' "$1" || true)"
title="$(yt-dlp -s -I "$n" --print '%(playlist)s' "$1" 2>/dev/null || true)"
n="$((n + 1))"
done
@ -149,6 +149,11 @@ list() {
test -z "$choices" || pick "$choices"
}
localsearch() {
test -n "$1" && usage 'localsearch'
$YTPICK <"$cachefile"
}
menu() {
playlist="$(ls "$YT_PL_DIR" | sed 's/\.m3u//g' | sed -n '/[^.old]/p' \
| $YTPICK)"
@ -255,11 +260,6 @@ search() {
fi
}
localsearch() {
test -n "$1" && usage 'localsearch'
$YTPICK <"$cachefile"
}
sync() {
if test -z "$1"
then
@ -354,4 +354,6 @@ done
test -n "$com" && shift || usage "$u"
printf '%s\n' "$u" | grep "$com" >/dev/null || usage "$u"
"$com" "$@"