]> gitweb.fluxo.info Git - playlister.git/commitdiff
Adds playlist-wget
authorSilvio Rhatto <rhatto@riseup.net>
Wed, 4 Oct 2017 23:36:49 +0000 (20:36 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Wed, 4 Oct 2017 23:36:49 +0000 (20:36 -0300)
playlist-wget [new file with mode: 0755]

diff --git a/playlist-wget b/playlist-wget
new file mode 100755 (executable)
index 0000000..b02fd60
--- /dev/null
@@ -0,0 +1,36 @@
+#!/bin/bash
+#
+# Get playlist files from an URL.
+#
+
+# Parameters
+BASENAME="`basename $0`"
+PLAYLIST="$1"
+
+# Check
+if [ -z "$PLAYLIST" ]; then
+  echo "usage: $BASENAME <playlist-url>"
+  exit 1
+elif echo "$PLAYLIST" | grep -q -v '^http'; then
+  echo "$BASENAME: unsupported URL"
+  exit 1
+fi
+
+# Get playlist base from where we can find all the files
+# We apply dirname twice because MPD stores playlists in a subfolder
+PLAYLIST_BASE="$(dirname $(dirname $PLAYLIST))"
+
+# Download all playlist files in the current folder
+# We use sed to replace new lines by the null character so xargs can detect each file correctly
+#curl -s $PLAYLIST | sed -e "s|^|\"$PLAYLIST_BASE/|" -e 's|$|"|' -e 's|\n|\x0|' | xargs wget -c
+
+# Download the playlist
+wget -c $PLAYLIST
+
+# Download playlist and all it's files preseving the folder structure
+cat `basename $PLAYLIST` | while read file; do
+  dirname="`dirname "$file"`"
+
+  mkdir -p "$dirname"
+  wget -c "$PLAYLIST_BASE/$file" -O "$file"
+done