Hôm qua đã cho trâu bò đi xem nhạc, hôm nay thì cho nó lao động cực nhọc hơn: tải nhạc.
Vì hôm qua chỉ định đi xem thôi nên có một số chỗ bị bỏ qua. Hôm nay lại phải vòng lại đi lối cũ. Kể cũng hơi bị mất thời gian, nhưng, đã là trâu bò thì xá gì…
Đầu tiên, phải dọn dẹp chiến trường:
$ mkdir XML HTML $ mv *.xml XML/ $ mv *.html HTML/
Sau rồi nặn thêm cái xe kéo để tải từng album theo ID:
#! /bin/sh # Tải từng album trên vnmusic.com.vn theo ID url='http://www.vnmusic.com.vn/music/uploads/media' function die() { echo $@ exit } [ -n "$1" ] || die "Hey man, where is the ID?" [ -f XML/album_"$1".xml ] || die "No such album, sir" album=$(grep "<album id='" XML/album_"$1".xml | sed -r "s/^.*title='(.*)'.*$/\1/") mkdir "$1 - $album" cd "$1 - $album" echo '#! /bin/sh' > dl_album_"$1".sh # Song title grep "onclick=\"playlistAdd(" ../HTML/album_"$1".html |\ sed -r "s/^.*onclick=\"playlistAdd\('([0-9]+)', '(.*)'\)\".*$/\1 -O '\2 - /g" > tmp1.txt # Composer grep -P "^\t{5}\(<a href=\"index.php\?aid=nhacsi\&id=([0-9]+)?\">(.*)</a>\)" ../HTML/album_"$1".html |\ sed -r "s/^.*\&id=([0-9]+)?\">(Ns\.?)?\s?(.*)?<\/a>.*$/\3 - /g" > tmp2.txt # Artist grep -P "^\t{5}<a href=\"index.php\?aid=nghesi\&id=([0-9]+)?\">" ../HTML/album_"$1".html |\ sed -r "s/^.*\&id=([0-9]+)?\">(NSND|NSƯT)?\.?\s?(.*)<\/a>/\3\.wma'/g" > tmp3.txt # Merge informations paste tmp1.txt tmp2.txt tmp3.txt > tmp.txt sed = tmp.txt | sed "N;s/\n/\t/" | sed -r "s#^([0-9]+)\t([0-9]+) -O '(.*)'#wget $url/\2\.wma -O '\1 - \3'#g" >> dl_album_"$1".sh sed -r "s/\s+/ /g" -i dl_album_"$1".sh rm *.txt sh dl_album_"$1".sh
Đôi lời biện hộ cho cái sự trâu bò:
1. Nên giữ lại cái ‘dl_album_"$1".sh
‘ để đề phòng trường hợp lỗi đường truyền.
2. Sở dĩ phải để cái tên tập tin lằng nhằng như thế là do sau này sẽ chuyển sang định dạng OGG rồi dùng bộ lọc của easyTAG để điền thông tin về bài: %b/%n - %t - %p - %a
.
Bình luận