You need to join this project to post message / question. See Help for details.

Tìm bài hát ở Sóc Bay

Giới thiệu

Sóc Bay cung cấp dịch vụ tìm kiếm bài hát. Để lấy danh sách các tập tin mp3 được đệm (cached) bởi dịch vụ Sóc Bay, có thể dùng kịch bản socbay_lookup.sh do Kỳ Anh viết.

Tải về

Tải về hai tập tin đầu tiên trong danh sách sau đây (những liên kết gạch ngang ứng với phiên bản cũ).

Cách dùng

Cài đặt

Các tập tin .sh tải về cần được thiết lập ở chế độ thi hành được bằng cách dùng lệnh chmod +x urlencode.sh,... Hai tập tin này ở cùng trong thư mục hoặc ở trong thư mục nào đó được liệt kê trong biến môi trường của bạn.

Tìm bài hát

Để tìm bài hát "Mơ hoa" (Hoàng Giác), gọi lệnh

$ socbay_lookup.sh mơ hoa

Kết quả sẽ tương tự như sau (mặc định, chỉ 46 kết quả đầu tiên được hiển thị)

http://www.socbay.com/mp3/download/674721
http://www.socbay.com/mp3/download/674734
http://www.socbay.com/mp3/download/694410
http://www.socbay.com/mp3/download/694413
...

Dùng với mplayer

Nếu dùng mplayer trên hệ thống .nix, bạn có thể trình diễn những tập tin .mp3 là kết quả xuất của kịch bản.

Ví dụ, tìm những tập tin .mp3 cho bài hát "Chiều" (Trọng Nguyễn, thơ Hồ Dzếnh) và nghe với mplayer

$ socbay_lookup.sh chiều | sort -u | mplayer -playlist -

Cũng có thể tạo playlist như sau:

$ socbay_lookup.sh chiều > chieu.txt
$ mplayer -playlist chieu.txt

Khi dùng mplayer với playlist lấy từ stdout, ta không thể sử dụng các phím control để chọn bài hát kế tiếp,... Kịch bản sau đây là cách dùng nâng cao của hai ví dụ ở trên. Nếu lưu kịch bản sau với tên xplay.sh thì có thể dùng xplay.sh -loop stuff (nghe mãi không thôi) hoặc xplay.sh stuff. Chú rằng, kịch bản sẽ cần tới quyền ghi vào thư mục tạm /tmp/, và nó sẽ dùng biến thời gian để xác định tập tin tạm thời.

#!/bin/sh

sfile="/tmp/xplay.sh.`/bin/date +%s`.txt" 

loop="" 
if [ "x$1" = "x-loop" ]; then
        loop="-loop 0" 
        shift
fi

socbay_lookup.sh $* > $sfile

grep -q mp3 $sfile

if [ $? -eq 0 ]; then
        cat $sfile
        mplayer -quiet $loop -playlist $sfile
else
        echo "sorry. no song found" 
fi

Ghi chú

Do đặc điểm của Sóc Bay, việc tìm tiếng Việt có dấu ra kết quả chính xác trong khi tìm với tiếng Việt không dấu có thể không ra kết quả

$ socbay_lookup.sh đàm vĩnh hưng   # ra kết quả
$ socbay_lookup.sh dam vinh hung   # có thể không ra kết quả gì

Cảm ơn

Tác giả Kỳ Anh cảm ơn đội phát triển của Sóc Bay đã cung cấp dịch vụ tìm kiếm bài hát và cung cấp các URL để tìm kiếm ở dạng rất đơn giản, nhờ đó, kịch bản socbay_looupkup.sh có thể hoàn thành công việc. Tác giả cũng cảm ơn Heiner Steven là người viết nên kịch bản rất tuyệt vời là urlencode.sh.

Linh tinh

Các thông báo và góp ý về kịch bản tại VnOSS.org: http://forum.vnoss.org/topic6536.html

Dưới đây là câu chuyện bắt nguồn cho kịch bản (sorry for my poor English)

# I usually listen to music from http://music.socbay.com/. This search
# engine is quite good and I almost remove all my local music files :)
# The best stuff is that Sóc Bay provides various artists who perform
# a same song! Koolz :P
#
# Because my box isnot always available online I should download some
# mp3 files. I gonna download many songs as fast as possible.
# Mouse isnot the best one.
#
# I first want to use curl. Looking into the source code of a random
# query I just find a very intersing script:
#   http://music.socbay.com/music/javascripts/ajax.js
# Ajax script shows me its wife :) It is quite hard to learn how this
# script works. Suddenly I see that everything is queried from
#   http://music.socbay.com/music/xmlmp3.aspx
# So my script was born :)
#
# Thanks to Sóc Bay Team and Hồ Minh Đức who wrote portions in ./ajax.js.
# Without their very best service I cannot write this fun script.

Also available in: HTML TXT