找回密码
 注册账号
搜索
查看: 11|回复: 0

[技巧] 使用Python获取文件夹中的mp3文件,并生成podcast的中间层

[复制链接]

3294

主题

701

回帖

3万

积分

管理员

积分
34345

最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

发表于 2025.12.27 14:14 | 显示全部楼层 |阅读模式


最终效果是这样:https://www.chatcyf.com/topics/21823/


代码

  1. import os
  2. import uuid
  3. import urllib.parse
  4. from datetime import datetime
  5. from email.utils import formatdate

  6. # ==============================
  7. # 配置区域(需要修改)
  8. # ==============================
  9. AUDIO_DIR = r"\\ipfs\download\email"   # 本地 mp3 文件夹
  10. BASE_URL = "https://67373.chatcyf.com/Douyu/email/"   # 在线 URL 前缀,末尾务必加 /
  11. OUTPUT_FILE = "items.xml"   # 最终生成 item 列表

  12. # ==============================
  13. # 生成 item 列表
  14. # ==============================
  15. items_output = ""

  16. for filename in os.listdir(AUDIO_DIR):
  17.     if not filename.lower().endswith(".mp3"):
  18.         continue

  19.     full_path = os.path.join(AUDIO_DIR, filename)

  20.     # 获取真实文件大小(字节)
  21.     length = os.path.getsize(full_path)

  22.     # URL encode 处理
  23.     encoded_name = urllib.parse.quote(filename)
  24.     file_url = BASE_URL + encoded_name

  25.     # GUID 使用 UUID,绝对不会重复
  26.     guid = str(uuid.uuid4())

  27.     # 使用文件修改时间作为 pubDate
  28.     timestamp = os.path.getmtime(full_path)
  29.     pub_date = formatdate(timestamp, usegmt=True)

  30.     # 标题为文件名去掉后缀
  31.     title = os.path.splitext(filename)[0]

  32.     item = f"""
  33.     <item>
  34.         <title>{title}</title>
  35.         <description><![CDATA[{title}]]></description>
  36.         <enclosure url="{file_url}" length="{length}" type="audio/mpeg" />
  37.         <guid>{guid}</guid>
  38.         <pubDate>{pub_date}</pubDate>
  39.         <itunes:explicit>no</itunes:explicit>
  40.     </item>
  41.     """

  42.     items_output += item

  43. # 保存结果
  44. with open(OUTPUT_FILE, "w", encoding="utf-8") as f:
  45.     f.write(items_output)

  46. print(f"音频 item 已生成:{OUTPUT_FILE}")
复制代码


您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

Archiver|手机版|小黑屋|童话镇 |网站地图

GMT+8, 2025.12.28 12:57 , Processed in 0.024668 second(s), 2 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表