喜馬拉雅批量下載

一、喜馬拉雅批量下載按鈕在哪

在喜馬拉雅網站上,每個專輯或電台頁面下面都會有「下載」按鈕,但是這個按鈕只是下載單個音頻文件,並不能批量下載。

如果想要批量下載,需要藉助第三方工具或者腳本。

二、喜馬拉雅批量下載器

喜馬拉雅批量下載器是一款非常實用的批量下載工具。它可以幫助用戶快速批量下載喜馬拉雅上的音頻,包括音頻文件、專輯或者電台,而且還可以選擇分段下載。

以下是使用Python語言實現的喜馬拉雅批量下載器代碼:



import requests
from lxml import etree
import time
import os

class XimalayaSpider(object):
    def __init__(self, album_url, save_path):
        self.album_url = album_url
        self.s = requests.session()
        self.headers = {
            # 在這裡添加header
        }
        self.save_path = save_path
        if not os.path.exists(self.save_path):
            os.makedirs(self.save_path)

    def run(self):
        album_title, album_id = self.get_album_info()
        download_list = self.get_download_list(album_id)
        self.download(album_title, download_list)

    def get_album_info(self):
        res = self.s.get(self.album_url, headers=self.headers)
        html = etree.HTML(res.text)
        album_title = html.xpath('//h1/text()')[0]
        album_id = html.xpath('//input[@id="albumId"]/@value')[0]
        return album_title, album_id

    def get_download_list(self, album_id):
        download_list_url = "https://www.ximalaya.com/revision/play/album?albumId={}&pageNum=1&pageSize=-1".format(album_id)
        res = self.s.get(download_list_url)
        download_list = res.json()["data"]["tracksAudioPlay"]
        return download_list

    def download(self, album_title, download_list):
        print("專輯名稱:", album_title)
        for i, item in enumerate(download_list):
            track_id = item["trackId"]
            title = item["trackName"]
            src = item["src"]
            duration = item["duration"]
            print("開始下載第{}個音頻,名稱為:{}".format(i + 1, title))
            res = self.s.get(src, headers=self.headers)
            with open(os.path.join(self.save_path, "{}-{}.m4a".format(str(i + 1).zfill(3), title)), "wb") as f:
                f.write(res.content)
            print("下載完成,休息2秒")
            time.sleep(2)

三、喜馬拉雅批量下載綠色版

喜馬拉雅批量下載綠色版是一款使用界面比較簡潔的批量下載工具,支持大眾化的操作,適用於不太熟悉Python等語言的用戶。

四、喜馬拉雅聽書批量下載

對於喜馬拉雅上的聽書,我們可以藉助助手插件工具進行批量下載。

五、喜馬拉雅怎麼批量下載50集

如果想要下載喜馬拉雅上某個專輯下的前50個音頻,可以使用以下代碼實現:


import requests
import re
import os

def get_mp3_urls(voiceid, start, end):
    mp3_urls = []
    for i in range(start, end):
        base_url='https://www.ximalaya.com/revision/play/v1/audio?id={0}&ptype=1'.format(voiceid+str(i))
        headers = {
            # 添加headers
        }
        res = requests.get(base_url, headers=headers)
        data = res.json()

        play_url = data['data']['src']
        mp3_url = re.sub(r'_\d+.mp3', '.mp3', play_url)
        mp3_urls.append(mp3_url)
    return mp3_urls

def download_mp3(mp3_url, dir_path):
    r = requests.get(mp3_url)
    filename = mp3_url.split("/")[-1]
    filepath = os.path.join(dir_path, filename)
    with open(filepath, 'wb') as f:
        f.write(r.content)

def main():
    voiceid = 'VOICEID'
    start = 1
    end = 51
    mp3_urls = get_mp3_urls(voiceid, start, end)
    dir_path = "download"
    if not os.path.exists(dir_path):
        os.mkdir(dir_path)
    for mp3_url in mp3_urls:
        download_mp3(mp3_url, dir_path)

六、喜馬拉雅下載工具

喜馬拉雅下載工具可以幫助用戶快速下載喜馬拉雅上的音頻,支持批量下載和單個下載,是一款比較實用的工具。

七、喜馬拉雅批量下載在哪裡

喜馬拉雅批量下載工具可以在各大軟體下載站和開源代碼社區中下載,例如CSDN、GitHub等。

八、喜馬拉雅批量下載器手機版

喜馬拉雅批量下載器手機版同樣也是一款非常實用的工具,通過它,用戶可以方便快捷地在手機上下載喜馬拉雅上的音頻。

以下是使用Java語言實現的喜馬拉雅批量下載器手機版代碼:


public class XimalayaSpider {
    public static void main(String[] args) throws Exception {
        String url="https://www.ximalaya.com/ertong/4385351/";
        Document document=Jsoup.connect(url).get();
        // 解析頁面信息
        Elements scripts=document.getElementsByTag("script");
        String mp3Url=null;
        for(Element element : scripts){
            String data=element.data();
            if(data.contains("window.__INITIAL_STATE__")){
                String jsonStr=data.substring(data.indexOf("{"),data.lastIndexOf("}")+1);
                JSONObject jsonObject=new JSONObject(jsonStr);
                String playPath=jsonObject.getJSONObject("sharePageInfo").getJSONObject("audio").getString("playPath");
                mp3Url=playPath.replaceAll("\\\\","");
                break;
            }
        }
        // 下載音頻
        URLConnection conn=new URL(mp3Url).openConnection();
        InputStream is=conn.getInputStream();
        FileOutputStream fos=new FileOutputStream("D:/audio.mp3");
        byte[] buff=new byte[1024];
        int len=0;
        while((len=is.read(buff))!=-1){
            fos.write(buff,0,len);
        }
        fos.close();is.close();
    }
}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/190351.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-29 22:32
下一篇 2024-11-29 22:32

相關推薦

  • Java批量執行SQL時Communications Link Failure Socket is Closed問題解決辦法

    對於Java開發人員來說,批量執行SQL是一個經常會遇到的問題。但是,有時候我們會遇到「Communications link failure socket is closed」這…

    編程 2025-04-28
  • PowerDesigner批量修改屬性

    本文將教您如何使用PowerDesigner批量修改實體、關係等對象屬性。 一、選擇要修改的對象 首先需要打開PowerDesigner,並選擇要修改屬性的對象。可以通過以下兩種方…

    編程 2025-04-27
  • Python批量導入資料庫

    本文將介紹Python中如何批量導入資料庫。首先,對於數據分析和挖掘領域,資料庫中批量導入數據是一個必不可少的過程。這種高效的導入方式可以極大地提高數據挖掘、機器學習等任務的效率。…

    編程 2025-04-27
  • 如何批量下載某博主全部微博相冊

    這篇文章將教大家如何通過Python代碼批量下載某博主全部微博相冊。 一、獲取微博相冊鏈接 首先,我們需要獲取到某博主的所有微博相冊鏈接。可以通過以下代碼獲取到某博主的首頁鏈接: …

    編程 2025-04-27
  • Python批量爬取網頁內容

    Python是當前最流行的編程語言之一,其在數據處理、自動化任務、網路爬蟲等場景下都有廣泛應用。本文將介紹如何使用Python批量爬取網頁內容,方便獲取大量有用的數據。 一、安裝所…

    編程 2025-04-27
  • Docker批量刪除容器詳解

    一、前言 Docker是一個開源的應用容器引擎,提供了一種輕量級容器化技術,方便快捷的進行應用打包、發布、運行。作為廣泛應用的技術之一,Docker是開發、測試、運維的得力助手。但…

    編程 2025-04-25
  • Mybatis批量插入操作

    一、基本概念 Mybatis是一種基於java的持久層框架,旨在幫助開發人員簡化資料庫操作。該框架提供了多種方式來執行資料庫操作,其中包括批量插入。批量插入是一種在單個事務中提交多…

    編程 2025-04-25
  • updatewrapper批量更新

    一、updatewrapper批量更新的概念 updatewrapper是Python中一個非常有用的工具,它可以用來批量更新Python庫。Python庫的更新是非常重要的,因為…

    編程 2025-04-24
  • heic批量轉jpg免費

    一、heic批量轉jpg免費無水印 針對很多人希望將heic格式批量轉換成jpg格式,但不希望出現水印的情況,以下示例給出一種無需安裝任何轉換軟體的方法。 首先需要將原始heic格…

    編程 2025-04-24
  • 批量修改文件格式

    一、批量修改文件格式擴展名 當我們遇到一堆格式不統一的文件,我們可能需要把他們的後綴名全部修改,方便我們後續的處理。這時,我們可以使用Python的os庫來實現文件重命名。 imp…

    編程 2025-04-23

發表回復

登錄後才能評論