Cách đây vài ngày, bác Huỳnh Kỳ Anh có gửi một bài lên Freesoft ( http://viettug.org/blogs/show/322 )về việc lấy link cũng như nghe nhạc từ mp3.zing.vn. Bắt nguồn từ ý tưởng trên, tớ viết thêm và tạo thành một script để có thể tự động tải các bài hát hot trong tháng từ mp3.zing.vn với nội dung sau:
#!/bin/bash #=============================================================================== # # FILE: getnhachotzing.sh # # USAGE: ./getnhachotzing.sh # # DESCRIPTION: # # OPTIONS: --- # REQUIREMENTS: --- # BUGS: --- # NOTES: --- # AUTHOR: Le Anh Tuan (tuantub@web.de), # COMPANY: # VERSION: 1.0.3 # CREATED: 10/03/2009 08:27:04 PM CEST # REVISION: --- #=============================================================================== month=$(date +%m) TDIR="/media/Data/Music/Thang$month" #TDIR="$HOME/Downloads/Thang$month" #TDIR=$HOME TEMPF=$(mktemp) if [ ! -f $TDIR ] then mkdir -p $TDIR fi if [ `which lynx` ] then lynx -dump http://mp3.zing.vn/mp3/nghe-album/album-hot/nhac-viet.html | \ sed 's/^.*\(http.*\)/\1/g' | \ awk -F '[? =]' '/\.mp3$/ {print $1,$3}' >$TEMPF else wget -O – -q http://mp3.zing.vn/mp3/nghe-album/album-hot/nhac-viet.html | \ awk -F '[<"?= >]' '/dl.mp3/ {print $5,$7}' >$TEMPF fi while read line do fname=$(echo $line | awk '{print $2}') if [ ! -f $TDIR/$fname ] then getcmd=$(echo $line | awk -v tdir="$TDIR" '{printf "wget -q %s -O %s/%s",$1,tdir,$2}') echo Downloading $fname ... eval "$getcmd" else echo "$TDIR/$fname is already downloaded!" fi done <$TEMPF rm $TEMPF echo "" echo ================================================ echo You can find your downloaded files now in $TDIR! echo ================================================ echo ""
Script khi được chạy sẽ tự động tải các bài hát trong tháng của mp3.zing.vn về thư mục được chỉ định (trong script này là $HOME/Downloads/Thang$n với n là số thư tự từ 1-12), tuỳ vào người sử dụng có thể chỉnh lại để dùng.
Tạm dừng bài viết và … ngồi nghe nhạc :).
tuantub.
PS: Định dạng trong này có thể làm méo mó script nếu copy/paste —> ai có nhu cầu có thể tải script từ:
Tháng Mười 5, 2009 lúc 5:32 chiều
Cái này có cái bất tiện là phải cài thêm lynx, thực sự có thể dùng wget để làm. :D, mai sẽ up thử.
Hello sư huynh.
Tháng Mười 5, 2009 lúc 5:57 chiều
🙂 thực ra thì tớ cũng đã có viết bằng wget nhưng dòm thấy bác Huỳnh Kỳ Anh mần con lynx có vẻ cũng được nên ăn cắp cốt 🙂
thay dòng với lynx thành :
wget -O – -q http://mp3.zing.vn/mp3/nghe-album/album-hot/nhac-viet.html | awk -F ‘[<“?= >]’ ‘/dl.mp3/ {print $5,$7}’
cũng chạy 🙂
Tháng Mười Một 1, 2009 lúc 7:36 chiều
cho minh tham gia gia
Tháng Mười 5, 2009 lúc 7:23 chiều
Không sao, để cho mọi người thêm sự chọn lựa chứ. 🙂
Cái script này thì chỉ kị 1 cái là ubuntu không cài sẵn lynx. Với lại hình như là để luyện awk hay sao đấy.
Tháng Mười 5, 2009 lúc 8:01 chiều
Luyện gì mà luyện, awk tao chẳng bít tí gì 😀
Tháng Mười 5, 2009 lúc 11:47 chiều
Thank tuantub 🙂 Script của bạn rất hay.
@Ghost: trong bài toán này thì lynx có thể thay thế bởi wget được. Một số hệ thống không cài cả wget và lynx.
Tháng Mười 6, 2009 lúc 2:58 sáng
@Bác Kỳ Anh:
Nhiều khả năng để người dùng lựa chọn cũng vui mà bác, mình có thêm cái để trao đổi :).
Tháng Mười 6, 2009 lúc 9:03 sáng
http://www.theghostnt.co.cc/2009/10/06/t%E1%BA%A3i-nh%E1%BA%A1c-hot-t%E1%BB%AB-zing-mp3/
Xem đỡ trong đây nhá mọi người, không quen với định dạng code trong blog này.
Tháng Hai 2, 2011 lúc 8:36 sáng
Để mình biến thể lại dùng cho Mac coi sao, trong Mac chạy curl cũng ok nên chưa cài wget vội.