很多优质的播客想下载到电脑上保存慢慢听,用kimi就可以很方便的批量下载。
在播客上点击subscribe via rss:
打开就是一个rss地址:
里面有播客的标题、摘要和音频下载地址;
在kimi中输入提示词:
你是一个Python编程专家,要完成一个批量下载播客音频的Python脚本,一步一步的思考:
打开网页https://feeds.megaphone.fm/create-like-the-greats
定位所有<item>标签,
在<item>标签中定位<title>标签,提取其文本内容作为播客音频的文件名;
在<item>标签中<enclosure> 标签,提取其url属性作为播客音频的URL;
下载播客音频,保存到E盘文件夹:Create Like the Greats
注意:每一步都要输出信息到屏幕上
多线程下载,以加快下载速度;
显示下载进度条;
Kimi生成Python代码:
import os
import requests
from bs4 import BeautifulSoup
from concurrent.futures import ThreadPoolExecutor
# 定义下载函数
def download_audio(podcast_title, podcast_url, save_path):
try:
local_filename = os.path.join(save_path, podcast_title)
with requests.get(podcast_url, stream=True) as r:
r.raise_for_status() # 抛出HTTPError异常,如果响应状态码不是200
with open(local_filename, 'wb') as f:
for chunk in r.iter_content(chunk_size=1024):
if chunk: # 过滤掉保持连接的chunk
f.write(chunk)
print(f"{podcast_title} 下载完成,保存在 {local_filename}")
except requests.exceptions.HTTPError as e:
print(f"{podcast_title} 下载失败,错误码:{e.response.status_code}")
# 检查保存路径是否存在,如果不存在则创建
save_path = "E:\\Create Like the Greats"
if not os.path.exists(save_path):
os.makedirs(save_path)
# 获取并解析播客Feed
url = "https://feeds.megaphone.fm/create-like-the-greats"
response = requests.get(url)
if response.status_code == 200:
print("网页内容已成功获取。")
soup = BeautifulSoup(response.content, 'html.parser')
items = soup.find_all('item')
print(f"找到 {len(items)} 个播客音频项。")
# 使用线程池下载所有音频
with ThreadPoolExecutor(max_workers=5) as executor: # 可以调整线程数
futures = []
for item in items:
title_tag = item.find('title')
enclosure_tag = item.find('enclosure', attrs={'url': True})
if title_tag and enclosure_tag:
title = title_tag.get_text().strip()
url = enclosure_tag['url']
# 清理标题以创建合法文件名
filename = "".join([c for c in title if c.isalpha() or c.isdigit() or c==' ']).rstrip() + ".mp3"
future = executor.submit(download_audio, filename, url, save_path)
futures.append(future)
print(f"安排下载:{filename}")
else:
print("缺少标题或链接信息,跳过该项。")
# 等待所有下载任务完成
for future in futures:
future.result()
else:
print("无法获取网页内容,错误码:", response.status_code)
print("所有任务完成。")
在vscode中运行代码,很快播客音频就下载完成了:
本文分享自 Dance with GenAI 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!