当前位置: 首页 > news >正文

Python实例题:Python获取喜马拉雅音频

目录

Python实例题

题目

python-get-ximalaya-audioPython 获取喜马拉雅音频脚本

代码解释

get_audio_info 函数:

download_audio 函数:

主程序:

运行思路

注意事项

Python实例题

题目

Python获取喜马拉雅音频

python-get-ximalaya-audioPython 获取喜马拉雅音频脚本

import requests
import json
import os# 设置请求头,模拟浏览器行为
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36','Referer': 'https://www.ximalaya.com/'
}def get_audio_info(audio_id):"""根据音频 ID 获取音频的详细信息:param audio_id: 音频 ID:return: 音频详细信息的 JSON 数据"""api_url = f'https://www.ximalaya.com/revision/play/v1/audio?id={audio_id}&ptype=1'try:response = requests.get(api_url, headers=headers)response.raise_for_status()return response.json()except requests.RequestException as e:print(f"请求出错: {e}")return Nonedef download_audio(audio_url, save_path):"""下载音频文件:param audio_url: 音频的下载链接:param save_path: 保存音频的路径"""try:response = requests.get(audio_url, headers=headers)response.raise_for_status()with open(save_path, 'wb') as f:f.write(response.content)print(f"音频已成功下载到 {save_path}")except requests.RequestException as e:print(f"下载音频时出错: {e}")if __name__ == "__main__":# 替换为你要下载的音频的 IDaudio_id = 'xxxxxx'audio_info = get_audio_info(audio_id)if audio_info and audio_info.get('ret') == 200:audio_url = audio_info['data']['src']# 创建保存音频的目录save_dir = 'ximalaya_audios'if not os.path.exists(save_dir):os.makedirs(save_dir)save_path = os.path.join(save_dir, f'{audio_id}.m4a')download_audio(audio_url, save_path)else:print("未获取到有效的音频信息")

代码解释

  • get_audio_info 函数

    • 根据音频 ID 构造 API 请求的 URL。
    • 发送 HTTP 请求获取音频的详细信息,若请求成功则返回 JSON 数据。
    • 处理请求异常,确保程序的健壮性。
  • download_audio 函数

    • 发送请求下载音频文件。
    • 将下载的音频内容保存到指定的文件路径。
    • 处理下载过程中的请求异常。
  • 主程序

    • 定义要下载的音频 ID。
    • 调用 get_audio_info 函数获取音频信息。
    • 若获取到有效的音频信息,提取音频的下载链接,创建保存音频的目录,调用 download_audio 函数下载音频。

运行思路

  • 安装依赖库:确保已经安装了 requests 库,若未安装,可使用以下命令进行安装:
pip install requests
  • 获取音频 ID:打开喜马拉雅音频详情页,从 URL 中获取音频的 ID。例如,音频详情页的 URL 为 https://www.ximalaya.com/xxx/xxxxxx/,其中 xxxxxx 就是音频 ID。
  • 修改代码:将代码中的 audio_id 替换为你要下载的音频的 ID。
  • 运行脚本:将上述代码保存为 get_ximalaya_audio.py 文件,在终端中运行:
python get_ximalaya_audio.py
  • 查看结果:程序会在当前目录下创建一个名为 ximalaya_audios 的文件夹,里面包含下载的音频文件。

注意事项

  • 版权问题:确保你有合法的权限下载和使用这些音频,避免侵犯版权。
  • 反爬机制:喜马拉雅有反爬机制,可能会限制请求频率或返回验证码。可考虑使用代理 IP、设置请求间隔等方式应对。
  • API 变化:喜马拉雅的 API 可能会随时变化,若代码无法正常工作,需要重新分析 API 请求。
http://www.xdnf.cn/news/344935.html

相关文章:

  • 【AI入门】CherryStudio入门5:创建知识库,对接Obsidian 笔记
  • C++ 深入解析 数据结构中的 AVL树的插入 涉及的旋转规则
  • 手撕基于AMQP协议的简易消息队列-2(所用第三方库的介绍与简单使用)
  • C++:扫雷游戏
  • 解决正点原子IMX6U开发板Buildroot构建qt根文件系统解压后,没有库文件
  • MySQL数据库初级体验
  • 2025年道路运输安全员考试题库及答案
  • 物流无人机自动化装卸技术解析!
  • Python开发系统
  • 网络接入服务商查询
  • 解决:‘java‘ 不是内部或外部命令,也不是可运行的程序-Java环境变量配置(含JDK8、JDK21安装包一站式配置)
  • 手写Promise的静态方法
  • Memgraph 的安装教程
  • 从一城一云到AI CITY,智慧城市进入新阶段
  • Oracle数据库DBF文件收缩
  • 基于大型语言模型的高效时间序列预测模型选择
  • 语音合成之十二 TTS声学编解码器的演进
  • 探索 C++23 的 views::cartesian_product
  • 【AI】DeepWiki 页面转换成 Markdown 保存 - Chrome 扩展
  • 可视化图解算法35:在二叉树中找到两个节点的最近公共祖先(二叉树的最近公共祖先)
  • 基于STM32、HAL库的FT231XS USB转UART收发器 驱动程序设计
  • 在Fiddler中添加自定义HTTP方法列并高亮显示
  • 姚琛全新特别版EP上线 携手金牌制作人诠释夏日浪漫
  • easyexcel导出动态写入标题和数据
  • 高频交直流传感技术在射频器件与微系统测试中的创新实践
  • TCP/IP和OSI对比
  • 【微信小程序开发】从0开始的一点点小记录
  • 并发与并行的关系
  • Java高频面试之并发编程-14
  • vue v-html无法解析<