如何在Google Colab实现YouTube直播自动推流播放到Clubhouse Android端
依赖冲突问题优化方案(适配Colab环境)
- 安装依赖时强制忽略已安装的冲突包,避免后续运行时意外调用旧版本库,修改安装命令为:
!git clone https://github.com/ai-eks/OpenClubhouse-Worker %cd OpenClubhouse-Worker !pip install -r requirements.txt --ignore-installed requests folium
- 执行完命令后重启Colab运行时,确保新安装的依赖版本生效。
YAML字符解析错误修复方案
该报错核心是requests_openapi库加载的OpenAPI规范文件里包含了YAML解析器不支持的emoji字符(#x1f579对应🎉表情),按以下步骤修复:
- 修改
ch_helper.py中初始化逻辑,先对API规范文件内容做特殊字符过滤再加载:
import re import yaml from requests_openapi import Client def clean_yaml_content(content): # 过滤YAML解析器不支持的非可打印特殊字符、emoji printable = re.compile(r'[^\x09\x0A\x0D\x20-\x7E\u00A0-\uD7FF\uE000-\uFFFD]') return printable.sub('', content) # 替换原有的self.client.load_spec_from_file(url)逻辑 with open(url, 'r', encoding='utf-8') as f: raw_content = f.read() clean_content = clean_yaml_content(raw_content) spec = yaml.load(clean_content, Loader=yaml.Loader) self.client = Client(spec=spec)
- 如果你调用的是远程拉取的API规范地址,在拉取内容后先执行上述过滤逻辑再传入yaml解析即可。
端到端YouTube直播推Clubhouse实现方案(适配Google Colab)
- 拉取YouTube直播流优先用
yt-dlp库,兼容性优于传统youtube-dl,支持最新的直播流格式:
!pip install yt-dlp
- 音频转码用Colab默认预装的ffmpeg,把直播流转为Clubhouse要求的16kHz单声道PCM格式:
!yt-dlp -f bestaudio [你的YouTube直播地址] -o - | ffmpeg -i - -ac 1 -ar 16000 -f s16le -acodec pcm_s16le output.pcm
- 推流到Clubhouse直接调用OpenClubhouse-Worker封装的音频上报接口,把转码后的音频流喂给对应接口即可,无需额外搭建Web服务。
内容的提问来源于stack exchange,提问作者Soheil Paper
相关产品推荐
相关产品推荐

