Hôm qua, igefore có gửi cho mình một bài nhạc từ nhacso.net. Cũng như những lần khác, mình định dùng itechvn.info/nhacso để lấy direct link, save lại, sau này muốn nghe không cần vào nhacso.net nữa. Nhưng không may, trang này died rồi. Nhưng nhớ lại hình như trên blog của Quỳnh Nguyễn có chỉ cách lấy mms link từ nhacso. Yeah, có rồi! Đáng lẽ mọi chuyện nên dừng ở đây, nhưng…
Trong lúc đọc hướng dẫn của Quỳnh Nguyễn, thấy cách mấy tay ở nhacso giấu link sao hớ hên quá. Vả lại, hướng dẫn của bác Quỳnh làm user phải làm hơi nhiều việc, nào là xem source của page, tìm tag này nọ, rồi copy từng phần vào trang decoder để script chạy tìm link. Một ý nghĩ lóe lên trong đầu, liệu mình có nên chỉnh lại 1 chút để user khỏe hơn 1 chút, tức là chỉ cần bỏ link vào và “chương trình” sẽ tự làm các công việc còn lại. Output sẽ là direct mms link.
Nhưng một trở ngại khác là mình không rành về viết script, nói chung 1 chữ bẻ đôi về web programming mình cũng không biết. Tuy công việc đơn giản nhưng đồ nghề không quen thì cũng hơi vất vả. Mình tự hỏi sao không dùng thứ mình quen thuộc để làm? Đó là C/C++. Yeah, why not?
Công việc phải làm chỉ là làm sao lấy nội dung của trang đó, rồi cứ y chang theo hướng dẫn của bác Quỳnh mà làm. Tuy nhiên, thực tế nảy sinh 1 vấn đề nhỏ khác. Đó là khi trang đó dùng WM player để chơi cả 1 album (nói cách khác, nó load 1 playlist). Mình phát hiện ra vấn đề này khi test lại chương trình trước giờ release. Khi đó, trên web browser, các video clip của Lý Hải vẫn đang hát mà chương trình của mình lại không parse ra mms link.
Mở lại source code của page đó, mình phát hiện, nó không mã hóa mms mà gọi luôn function:
showPLayer(”/Music/nghe_album.asp?id=100015703″)
Mình thử browse địa chỉ “http://nhacso.net/Music/nghe_album.asp?id=100015703” thì WMPlayer tự động mở lên. Định xem page source của trang asp này nhưng nhacso không cho. Chẳng những mấy tay này disable right-click mà còn disable luôn View\Page Source luôn. Google thử xem có cách nào giải quyết không. Không biết google đưa lối, google dẫn đường sao, mình quay lại codeproject. Ha, người nhà! Nhưng không phải vào mục MFC hay Visual C++ thân quen, mà mình vẫn hay lui tới. Article nhỏ nhỏ xinh xinh này nằm trong mục ASP có title rất cool “Get The HTML Source of Any Web Page“. Mặc dù không biết 1 chút nào về ASP nhưng cũng ráng xem. Thì ra chú này dùng Microsoft XMLHTTP object. Nếu vậy thì hoàn toàn có thể dùng trong C/C++. Sau khi lấy được HTML source rồi thì công việc chỉ là parse ra từng mms link thôi.
Bỏ thêm 1 tiếng trang điểm lại cho cái program, test “sơ sơ” vài trường hợp, thấy ok nên post lên đây luôn (download link ở cuối entry).
Chắc cũng cần nói sơ cách dùng. Trước tiên là dialog chính: (nói vậy cho sang thôi, chứ program này có 1 dialog duy nhứt à, có đâu ra 2 mà bày đặt chính với phụ!)

Trước tiên là paste link của nhacso vào phần nhacso.net link, sau đó click vào Get Link & Copy to Clipboard. Nếu thành công, field Song link sẽ chứa direct mms link. Link này cũng tự động được copied vào clipboard, giúp user 1 công đoạn Ctrl+A, Ctrl+C. Nếu nhacso.net link loads nguyên album thì navigation buttons (<< và >>) sẽ được enabled, giúp user di chuyển tới/lui giữa các songs trong album đó. Tuy không nói ra, nhưng mỗi lần đi tới/lui, link cũng được copied luôn vào clipboard, khỏi select all, copy làm gì mất công.
Vì đây là program viết nhanh (một cách nói để tránh từ “viết ẩu”) nên sẽ không tránh được bugs. Nếu phát hiện, pls email cho author, hoặc để comment vào entry này cũng được. Nếu phát hiện ra có link nào của nhacso.net có bài hát mà program không tìm ra được (mặc dù web browse chơi ngon lành), cũng làm ơn thông báo cho author để author nghiên cứu thêm, hy vọng hoàn chỉnh program.
Vì program phải dùng internet connection để lấy content của nhacso.net nên nếu bị firewall hỏi, nhớ mở một connection cho nó.

GetDirectLink.zip
GetDirectLink.rar
—————— update [Nov 15, 2007] ———————–
Good news and bad news:
Bad news: Hiện nay nhacso.net đã thay đổi cách giấu link nên GetDirectLink không còn làm việc tốt nữa, thường xuyên thông báo không tìm được link.
Good news:bạn vnnsonline đã chia sẻ một website rất hữu ích để lấy link. Không riêng gì từ nhacso.net, mà gần như hầu hết từ những trang giải trí trực tuyến hiện nay. Đó là:
http://vnnsearch.com/index.php/grablink.html
Mình nghĩ đến lúc cho GetDirectLink nghỉ hưu được rồi. Cám ơn tất cả các bạn đã ghé thăm và viết comments.