8000 GitHub - fangdajiang/youtube-audio: 将 YouTube 上订阅的内容转换成音频并推送到 Telegram 的 @YouTubeCnPoliticsAudio 频道中
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

将 YouTube 上订阅的内容转换成音频并推送到 Telegram 的 @YouTubeCnPoliticsAudio 频道中

Notifications You must be signed in to change notification settings

fangdajiang/youtube-audio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

结合 Telegram 的 机器人(Bot) 和 频道(Channel),将视频网站(目前仅 YouTube)上的订阅内容自动以音频的形式发送到 Telegram 的指定频道中,从而提供 Telegram 上的音频服务。

简体中文 English

演示

  • 注册 Telegram(俗称电报,中国大陆须科学上网,或使用其内置的代理)
  • 在 Telegram 中订阅频道 @YouTubeCnPoliticsAudio
  • 从 Telegram 不定时获得 YouTuber(s) 发布的音频内容(因 Telegram 的限制,不拉取大小超过 50M 的音轨)
  • 在 Telegram 的机器人 @you_audio_bot 中查看告警通知

构建

  • 依赖
  • 从源码构建
git clone https://github.com/fangdajiang/youtube-audio.git
cd youtube-audio
go build -o bin/ya main.go
  • 通过 Docker 构建
docker build -t youtube-audio:latest -f ./Dockerfile .
  • 通过 Packer 构建并推到 Docker Hub 中
# 设置环境变量 DOCKER_ID
packer build deploy/packer/local.json
  • 通过 Terraform 来 Provision
# 设置环境变量 ALICLOUD_ACCESS_KEY, ALICLOUD_SECRET_KEY, ALICLOUD_REGION
# 
# 先在阿里云构建基础镜像,获取所生成的镜像 ID
packer build deploy/packer/alicloud.json
# 将该 ID 更新到 main.tf 的 image_id

运行

  • Docker
docker run -d -e BOT_TOKEN= -e BOT_CHAT_ID= -e CHAT_ID= -e YOUTUBE_KEY= -e ALICLOUD_ACCESS_KEY= -e ALICLOUD_SECRET_KEY= youtube-audio:latest
  • Terraform
cd deploy/terraform/alicloud
terraform init/plan/apply
  • Dev
    • 拷贝 bin/dependency/yt-dlp 到本机 $PATH
    • 设置本机环境变量 BOT_TOKEN, BOT_CHAT_ID, CHAT_ID, YOUTUBE_KEY
# 拉取近期音频
go run main.go run -m latest
# 拉取单条音频
go run main.go run -m single https://www.youtube.com/watch?v=xxx

功能

  • CLI 支持一键拉取自定义 YouTuber Playlist 近期发布的 2 条视频的音轨到 Telegram 的指定频道
  • 支持 Packer 在阿里云平台上构建镜像
  • 支持 Terraform 在阿里云平台上构建虚拟机
  • CLI 支持拉取单条视频的音轨到 Telegram 指定频道
  • 使用 Bot 进行订阅
  • 略延时获取发布内容的音频(由于 YouTube 会延时发布视频中的单独音轨,故暂时无法做到实时)
  • 支持订阅多 YouTuber
  • 支持取消订阅
  • 支持发布给用户
  • (支持订阅不同质量的音轨)
  • 将本项目平台化,订阅来源和发布目的 与本项目解耦

注意事项

  • 编译时,假如本机是 ARM 架构的 CPU(如 Apple M1/M2),须加参数
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o bin/ya main.go

受以下项目启发并表示感谢

About

将 YouTube 上订阅的内容转换成音频并推送到 Telegram 的 @YouTubeCnPoliticsAudio 频道中

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages

0