You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将ytdl获取的音频输出至虚拟麦克风(VB Cable驱动)?

解决方案

要把ytdl拉取的音频流输出到VB Cable虚拟麦克风,核心是两步:获取音频流 + 将流定向到指定的VB Cable输出设备,下面是具体操作:

1. 安装依赖

先安装所需的Node.js库:

npm install ytdl-core speaker

2. 找到VB Cable的设备ID

需要先拿到VB Cable的设备ID才能指定输出。运行以下代码列出所有音频输出设备:

const Speaker = require('speaker');

Speaker.getDevices((err, devices) => {
  if (err) throw err;
  // 筛选输出设备,VB Cable默认名称带"CABLE"关键词
  const outputDevices = devices.filter(d => d.type === 'output');
  console.log('可用输出设备:', outputDevices);
});

在输出结果里找到VB Cable对应的deviceId(通常是数字或字符串),记下来备用。

3. 完整代码示例

将ytdl的音频流直接输出到VB Cable:

const ytdl = require('ytdl-core');
const Speaker = require('speaker');

// 替换为目标视频URL
const url = 'https://www.youtube.com/watch?v=你的视频ID';
// 替换为刚才获取的VB Cable设备ID
const vbCableDeviceId = '你的设备ID';

// 获取仅音频流
const audioStream = ytdl(url, { quality: 'audioonly' });

// 配置Speaker,指定输出到VB Cable
const speaker = new Speaker({
  deviceId: vbCableDeviceId,
  // 适配ytdl输出的音频参数,无需修改
  channels: 2,
  bitDepth: 16,
  sampleRate: 44100
});

// 连接音频流与Speaker开始播放
audioStream.pipe(speaker);

// 监听播放结束和错误事件
speaker.on('close', () => console.log('播放完成'));
audioStream.on('error', err => console.error('音频流错误:', err));
speaker.on('error', err => console.error('播放错误:', err));

注意事项

  • 若提示设备找不到,检查VB Cable驱动是否安装启用,或设备ID是否复制正确。
  • 部分受版权保护的视频无法通过ytdl拉取,建议先用公开无版权视频测试。
  • 若使用TypeScript,需额外安装@types/ytdl-core和@types/speaker类型声明包。

内容的提问来源于stack exchange,提问作者ekex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 04:52:43