Lấy link và tải bài hát nhạc hot trong tháng của mp3.zing.vn

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ừ:

http://cs.tu-berlin.de/~tuantub/tools/getnhachotzing.sh

9 bình luận to “Lấy link và tải bài hát nhạc hot trong tháng của mp3.zing.vn”

  1. Ghost Says:

    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.

  2. tuantub Says:

    🙂 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 🙂

  3. Ghost Says:

    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.

  4. tuantub Says:

    Luyện gì mà luyện, awk tao chẳng bít tí gì 😀

  5. Anh K. Anh Says:

    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.

  6. tuantub Says:

    @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 :).

  7. Ghost Says:

    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.

  8. tquang Says:

    Để 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.


Gửi phản hồi cho Ghost Hủy trả lời