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=”$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 “”
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 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

8 phản hồi tới “Lấy link và tải bài hát nhạc hot trong tháng của mp3.zing.vn”

  1. Ghost nói:

    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 nói:

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

    • Khách nói:

      cho minh tham gia gia

  3. Ghost nói:

    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 nói:

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

  5. Anh K. Anh nói:

    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 nói:

    @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 nói:

    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.


Để lại hồi âm