Trâu bò đi tải nhạc

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\&amp;id=([0-9]+)?\">(.*)</a>\)" ../HTML/album_"$1".html |\
	sed -r "s/^.*\&amp;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.


Chuyên mục:

2 responses

  1. Chả hiểu gì. Tiện thể có cái dưới này.

    ↑ Grab this Headline Animator

  2. Ghê thiệt, Nhưng cần lấy tiêu đề và link nhạc này tui đưa cho, ok

Bình luận

Website này sử dụng Akismet để hạn chế spam. Tìm hiểu bình luận của bạn được duyệt như thế nào.