闲社服务运行正常AI智能体自动化平台
v

视频转播客

技能标识:video2podcast

Convert bookmarked videos from YouTube, X (Twitter), and other sites into a podcast RSS feed hosted on Cloudflare R2. Use when the user says things like "add this to my podcast feed", "add this video to my podcast", "sync my podcast feed", "put this YouTube video in my podcast", or "subscribe to this playlist as a podcast". Manages a persistent episode list and hosts audio files + feed.xml on Cloudflare R2.

作者:admin | 来源记录:ClawHub
登记来源
ClawHub
版本
V 1.0.2
检测标记
后台标记通过
免费
免费获取
0
收藏
来源与检测标记为平台登记信息,并不代表已展示可复核的检测报告。使用前请核对版本、依赖和所需权限,建议先在隔离环境中运行。
概述
安装方式
版本历史

视频转播客

video-podcast

将任何视频URL转换为播客剧集。向Cloudflare R2发布一个有效的RSS订阅源,可在Apple Podcasts、Overcast、Pocket Casts以及任何播客应用中订阅。

支持YouTube、X(Twitter)以及yt-dlp支持的其他约1000个网站。



首次设置

1. 安装依赖

bash

Python包


pip3 install yt-dlp boto3

ffmpeg(音频转换必需)

brew install ffmpeg # macOS sudo apt install ffmpeg # Linux

2. 创建Cloudflare R2存储桶

  1. 1. 在cloudflare.com注册(免费版即可)
  2. 进入R2对象存储 → 创建存储桶
  3. 任意命名——例如podcast-feed
  4. 启用存储桶的公共访问(R2 → 存储桶 → 设置 → 公共访问 → 启用)
  5. 记下显示的r2.dev公共URL(例如https://pub-abc123.r2.dev)

3. 创建R2 API令牌

  1. 1. R2 → 管理R2 API令牌 → 创建令牌
  2. 设置权限:对存储桶的对象读写
  3. 记下访问密钥ID和秘密访问密钥
  4. 从仪表盘右上角记下您的账户ID

4. 配置技能

运行交互式设置:

bash
python3 /path/to/skills/video-podcast/scripts/video_podcast.py setup

或手动将这些添加到~/.openclaw/.env:

VIDPODR2ACCESSKEY=youraccesskeyid
VIDPODR2SECRET=yoursecretaccess_key
VIDPODR2ENDPOINT=https://.r2.cloudflarestorage.com
VIDPODR2BUCKET=podcast-feed
VIDPODPUBLICBASE=https://pub-.r2.dev

可选

VIDPODFEEDTITLE=我的视频播客 VIDPODFEEDAUTHOR=您的姓名

5. 添加封面图片(可选但推荐)

播客应用会显示1400×1400像素的JPEG作为封面图。上传一张到您的存储桶:

bash

使用AWS CLI(如果已安装)


aws s3 cp cover.jpg s3://podcast-feed/cover.jpg \
--endpoint-url https://.r2.cloudflarestorage.com \
--content-type image/jpeg

或通过Cloudflare R2仪表盘——将cover.jpg拖放到存储桶中

图片必须命名为cover.jpg并放在存储桶的根目录。



使用方法

添加单个视频

bash
python3 video_podcast.py add https://www.youtube.com/watch?v=...
python3 video_podcast.py add https://x.com/user/status/123456789
python3 video_podcast.py add https://vimeo.com/...

同步YouTube播放列表

添加播放列表中尚未在订阅源中的所有视频:

bash
python3 video_podcast.py sync-youtube PLxxxxxxxxxxxxxxxx

播放列表ID是YouTube URL中list=后面的部分。

列出剧集

bash
python3 video_podcast.py list

获取RSS订阅源URL

bash
python3 video_podcast.py feed

删除剧集

bash
python3 video_podcast.py remove https://www.youtube.com/watch?v=...



工作原理

  1. 1. yt-dlp从源URL获取最佳可用音频流——无需浏览器自动化,无需屏幕录制。
  2. ffmpeg将音频转换为MP3(VBR约130kbps)。
  3. MP3文件上传到您的Cloudflare R2存储桶,带有7天公共缓存头。
  4. feed.xml被重建并上传,带有no-cache头,以便播客应用始终看到最新版本。
  5. 您的播客应用定期轮询订阅源URL并自动下载新剧集。

存储与状态

位置用途
~/.openclaw/video-podcast-state.json剧集列表 + 已处理的URL GUID(去重)
R2 <guid>.mp3
音频文件(公共,7天缓存) | | R2 feed.xml | 播客RSS订阅源(公共,无缓存) | | R2 cover.jpg | 播客封面图(可选) |

支持的来源

任何yt-dlp支持的URL,包括:


故障排除

ffmpeg not found
bash
brew install ffmpeg # macOS
sudo apt install ffmpeg # Linux

R2的SSL错误
确保您使用的是Python 3.10+和OpenSSL 3.x。在macOS上,系统Python(/usr/bin/python3)使用LibreSSL,可能无法正常工作。通过Homebrew安装Python:
bash
brew install python@3.13

年龄限制的YouTube视频
yt-dlp需要您的浏览器cookies:
bash
yt-dlp --cookies-from-browser chrome https://youtube.com/watch?v=...

然后再次运行add——yt-dlp会缓存cookies。

X/Twitter视频失败
公开推文无需认证即可工作。私人账户需要cookies:
bash
yt-dlp --cookies-from-browser chrome https://x.com/user/status/...

剧集未在播客应用中显示
大多数播客应用会缓存订阅源1-24小时。在应用中强制刷新,或直接检查订阅源:python3 video_podcast.py feed



OpenClaw代理使用

通过OpenClaw代理使用时,触发短语包括:

  • - 将此添加到我的播客订阅源:[URL]
  • 将此视频添加到我的播客
  • 从播放列表[ID]同步我的播客
  • 我的播客订阅源里有什么?
  • 从我的播客中删除[URL]

代理将运行相应的子命令并报告结果。

标签

skill ai

通过对话安装

以下为平台配置的接入选项,并非逐项实测通过。能否安装取决于客户端支持、技能来源和运行环境:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 video2podcast-1776054543 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 video2podcast-1776054543 技能

通过命令行安装

skillhub install video2podcast-1776054543

下载

⬇ 下载 video2podcast v1.0.2(免费)

文件大小: 9.85 KB | 发布时间: 2026-4-14 12:00

v1.0.2 最新 2026-4-14 12:00
Declare VIDPOD_COOKIE_BROWSER env var; make browser cookie use opt-in and documented; clarify cookies are read locally only
返回顶部