Sử dụng Golang để tải xuống âm thanh từ Ximalaya - tải tool hack tài xỉu 789 club miễn phí

| Apr 16, 2025 min read

12 tháng 11 năm 2022 - Máy tính

“Ximalaya” là một ứng dụng phát âm thanh mà tôi rất yêu thích. Nó chứa nhiều chương trình âm thanh chất lượng cao, làm phong phú thêm cuộc sống hàng ngày của tôi.

Bài viết này ra đời từ nhu cầu cá nhân của tôi: Tôi là người dùng thường xuyên của ứng dụng Ximalaya, hầu như mỗi ngày tôi đều sử dụng nó để nghe các tác phẩm kinh điển. Nó thực sự mang đến cho tôi “thực phẩm tinh thần hằng ngày”. Đôi khi, tôi muốn tải xuống một số âm thanh để nghe đi nghe lại, nhưng bị hạn chế bởi dung lượng lưu trữ trên điện thoại nên không thể tải tùy ý những gì mình muốn. Do đó, tôi đã nảy ra ý tưởng viết một ít mã nguồn để tải âm thanh về ổ USB, máy tính hoặc thiết bị MP3.

Cần nhấn mạnh rằng: Chương trình này không liên quan đến đăng nhập, không lấy trộm nội dung trả phí, chỉ tải xuống nội dung hoàn toàn công khai mà không cần đăng nhập trên trang web Ximalaya.

Tiếp theo sẽ lần lượt giới thiệu quá trình nghiên cứu API, cách thực hiện bằng mã nguồn Golang, cách sử dụng và cách chuyển đổi định dạng âm thanh.

1. Nghiên cứu API

Làm thế nào để lấy ID Album?

Để lấy tất cả các bản ghi âm trong một album (Album), chúng ta phải biết ID của album đó. Như hình dưới đây, khi truy cập vào một album trên Ximalaya, bạn có thể nhìn thấy ID của album từ thanh địa chỉ của trình duyệt (trong ví dụ này, 248003 là ID của album “Trương Khánh Hiển giảng Mạnh Tử”). ![](Hình ảnh minh họa)

API để lấy âm thanh

Tại thời điểm viết bài này, trang web Ximalaya:

  • Có API phân trang để lấy danh sách các bản ghi âm dựa trên ID album:
  • Có API để lấy đường dẫn tải xuống dựa trên ID bản ghi âm:

Vậy, với ID album, chúng ta có thể sử dụng API đầu tiên để lấy được thông tin chi tiết của tất cả các bản ghi âm bên trong (bao gồm ID bản ghi âm, tiêu đề…). Sau đó, với ID bản ghi âm, chúng ta có thể sử dụng API thứ hai để lấy được đường dẫn tải xuống và tiến hành tải về.

2. Thực hiện bằng Golang

Mã nguồn Golang để tải xuống âm thanh đã được tôi gửi lên GitHub. Do logic thực hiện khá đơn giản, toàn bộ mã nguồn cũng không quá 200 dòng. Dưới đây là phần logic chính của hàm main.

func main() {
  // Kiểm tra tham số đầu vào
  if len(os.Args) < 2 {
    fmt.Println("Vui lòng cung cấp ID của album")
    return
  }
  albumId, err := strconv.Atoi(os.Args[1])
  if err != nil {
    fmt.Println("ID album phải là một số nguyên")
    return
  }
  fmt.Printf("ID album: %d\n", albumId)
  
  // Lấy danh sách tất cả các bản ghi âm
  tracks, err := getAllTrackList(albumId)
  if err != nil {
    fmt.Printf("Lỗi khi lấy danh sách tất cả các bản ghi âm, lỗi: %v\n", err)
    return
  }
  fmt.Printf("Đã lấy được danh sách tất cả các bản ghi âm, tổng số: %d\n", len(tracks))
  
  // Lấy địa chỉ âm thanh và tiến hành tải về
  for _, track := range tracks {
    audioAddr, err := getAudioAddress(track.TrackId)
    if err != nil {
      fmt.Printf("Lỗi khi lấy địa chỉ âm thanh, lỗi: %v\n", err)
      break
    }
    
    // Tải xuống
    filePath, err := download(audioAddr, track.Title, track.AlbumTitle)
    if err != nil {
      fmt.Printf("Lỗi khi tải xuống âm thanh, lỗi: %v\n", err)
      continue
    }
    fmt.Printf("Đã tải xuống! Tập tin: %s\n", filePath)
  }
}

Nhìn vào hàm main, chúng ta có thể thấy:

  • Trước hết, kiểm tra tham số đầu vào (phải cung cấp một ID album);
  • Gọi hàm getAllTrackList để lấy tất cả các bản ghi âm trong album đã chỉ định (mỗi bản ghi âm chứa ID bản ghi âm, tiêu đề…);
  • Duyệt qua mảng tracks, đối với mỗi bản ghi âm, gọi hàm getAudioAddress để lấy địa chỉ âm thanh, sau đó tiến hành tải về.

3. Cách sử dụng?

Việc sử dụng rất đơn giản, nếu bạn có môi trường chạy Go, chỉ cần chỉ định ID album và chạy trực tiếp main.go. Ví dụ như sau:

go run main.go 248003
ID album: 248003
Đã lấy được danh sách tất cả các bản ghi âm, tổng số: 140
Đã tải xuống! Tập tin: Trương Khánh Hiển giảng Mạnh Tử/1. Cơ bản quản lý quốc gia.m4a
Đã tải xuống! Tập tin: Trương Khánh Hiển giảng Mạnh Tử/2. Quân vương làm sao để yên tâm hưởng lạc?.m4a
Đã tải xuống! Tập tin: Trương Khánh Hiển giảng Mạnh Tử/3. Năm mươi bước cười một trăm bước.m4a
Đã tải xuống! Tập tin: Trương Khánh Hiển giảng Mạnh Tử/4. Người nhân từ không địch thủ.m4a
...

Chương trình sẽ tạo một thư mục mới với tên của album tại thư mục hiện tại nơi lệnh được chạy và tải từng bản ghi âm của album đó vào thư mục đó. Kết quả tải xuống như hình dưới đây:

![](Hình ảnh m88vin - cổng game quốc tế minh họa)

4. Chuyển đổi m4a sang mp3?

Sau khi tải xuống, có một vấn đề nhỏ: định dạng âm thanh của Ximalaya là .m4a, định dạng này phát trên thiết bị Apple không có vấn đề gì, nhưng trình phát âm thanh mặc định của nhiều thiết bị khác không hỗ trợ định dạng này.

Phải làm sao? Chúng ta có thể sử dụng các công cụ trực tuyến để chuyển đổi định dạng từ .m4a sang .mp3, định dạng phổ biến hơn. Cách đơn giản nhất là tìm kiếm các công cụ chuyển đổi trực tuyến (như freeconvert.com/m4a-to-mp3), tải file lên trang web và chờ chuyển đổi xong để tải xuống.

Tuy nhiên, với tư cách là một lập trình viên, tôi thích cách chuyển đổi bằng lệnh hơn. Dưới đây sẽ giới thiệu một công cụ nhỏ - FFmpeg, sử dụng nó có thể chuyển đổi định dạng âm thanh từ .m4a sang Tai Benvip Game Danh Bai 3C .mp3.

Trước tiên, hãy truy cập vào trang tải xuống của FFmpeg để tìm liên kết tải xuống phù hợp với hệ điều hành của bạn (Tôi sử dụng Mac, nên đã tìm thấy liên kết tải xuống tại evermeet.cx/ffmpeg). Sau đó, sử dụng các lệnh sau để tải gói nén, giải nén và di chuyển tập tin thực thi ffmpeg vào /usr/local/bin:

curl -O 
unzip ffmpeg-109029-g1800a0da09.zip
sudo mv ffmpeg /usr/local/bin

Sau khi cài đặt ffmpeg, bạn có thể sử dụng lệnh sau để chuyển đổi các tệp .m4a:

cd Trương Khánh Hiển giảng Mạnh Tử/
mkdir after
for f in *.m4a; do ffmpeg -i "$f" -codec:v copy -codec:a libmp3lame -q:a 2 after/"${f%.m4a}.mp3"; done

Lệnh trên trước tiên sẽ vào thư mục chứa các tệp âm thanh .m4a cần chuyển đổi, sau đó tạo thư mục lưu trữ các tệp đã chuyển đổi after, cuối cùng sử dụng ffmpeg để chuyển đổi tất cả các tệp .m4a thành định dạng .mp3 và đặt chúng vào thư mục after. Kết quả sau khi chuyển đổi như hình dưới đây:

![](Hình ảnh minh họa)

Với định dạng .mp3 phổ biến hơn, bạn có thể nghe các tệp âm thanh này một cách thoải mái trên hầu hết mọi thiết bị có khả năng phát âm thanh ở chế độ ngoại tuyến.

Tóm Net79 Club Game Bài Uy Tín Nhất 2024 lại, bài viết này đã giới thiệu cách sử dụng Golang để tải xuống âm thanh từ Ximalaya và phương pháp chuyển đổi định dạng từ .m4a sang .mp3. Tổng kết lại, chủ yếu phục vụ mục đích sử dụng cá nhân, đồng thời hy vọng sẽ hữu ích cho những ai quan tâm.

[1] Ximalaya - ximalaya.com
[2] FFmpeg - ffmpeg.org
[3] FFMPEG: Chuyển đổi m4a sang mp3 mà không mất chất lượng đáng kể - superuser.com

![](Hình ảnh minh họa)