summaryrefslogtreecommitdiff
path: root/.local/bin/web/ytplaylist
blob: 7bc9026da67890087f5e0c21a828139add92fbf8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/bin/sh

# Useful when creating a directory of videos sequenced as per a youtube
# playlist.
# Run this script from from the root of a directory that contains all the media
# and metadata files.
# The playlist file is expected to be in 'playlist' directory within the root
# with .pl.txt extension. (playlist/PLAYLIST_NAME.pl.txt)
# The new playlist directory will be created in the current directory i.e. the
# root if no other destination is passed as the second argument.

case "$1" in
	'') echo "ytplaylist - build a directory of sequenced videos using a playlist file\n
USAGE:\n\tytplaylist <PLAYLIST_FILE> [DESTINATION_DIR] " >&2; exit ;;
	playlist/*.pl.txt) ;;
	*)
		printf "%s" "Unconventional file path, contniue? [y/N] "
		read -r ans
		case "$ans" in y) ;; *) exit 1 ;; esac
		;;
esac

playlist="$(readlink -f $1)"
i=1
fpl "$playlist" | while read -r file; do
	if [ -z "$file" ]; then
		i=$(( $i + 1 ))
		continue
	fi
	dir="$(dirname "$file")"
	base="$(basename "$file")"
	rsync -Pru --mkpath "$file" \
		"${2:-$(basename "${playlist%.pl.txt}")}/${dir#$(readlink -f "$PWD")}/$(printf "%02d" "$i") $base"
done