使用 Go 编写的基于命令行/终端的应用程序,使用 YouTube URL/ID 下载短片和视频。
注意:如果您正在寻找即用型工具,请检查此存储库的固定问题。
YouTube 短片和视频下载。
能够从不同的内容质量中进行选择。
目前该项目有2个依赖项,
tview - 具有丰富的交互式小部件的终端 UI 库 - 用 Golang 编写。
FFmpeg - 领先的跨平台多媒体框架。它应该安装在系统中或至少在项目的根目录中有最新的静态二进制文件。它更多的是外部运行时依赖。
粘贴 YouTube Shorts/视频 ID 或 URL 时,应用程序会从 YouTube 的内部 API 获取元数据。
然后,根据视频和音频的质量选择,应用程序通过向获取的内容 URL 发出小型数据请求来下载 Shorts/视频内容。
最后,如果 FFmpeg 存在,则单独的视频和音频流文件将合并为单个输出文件。
安装 Go 后,从项目根目录输入以下命令,
在 Linux/UNIX 上,
go build -o go_youtube_downloader ./cmd/go_youtube_downloader.go
在 Windows 上,
go build -o go_youtube_downloader.exe ./cmd/go_youtube_downloader.go
安装 Go 后,克隆/下载该项目并从项目的根目录输入以下命令,
go run ./cmd/go_youtube_downloader.go
系统必须安装 FFmpeg 或在项目根目录中具有最新的静态二进制文件,才能将下载的单独视频和音频流合并到单个文件中。
由于 YouTube 的签名加密,无法下载有年龄限制的视频。
YouTube 对每个传入请求有带宽限制,每个请求大约 10 MB。如果任何请求获取的数据超过此大小限制,则进一步的请求将限制下载或连接可能会终止。因此,为了在下载数据并将其写入输出文件时获得更好的性能,它被分为更小的块以保持一致性。根据所选的质量和大小,下载时间会或多或少。
逆向工程 YouTube:重访 - 解释 YouTube 内部 API 的博客。
YouTube-Internal-Clients - 一个发现隐藏的 YouTube API 客户端的 python 脚本。只是一个研究项目。
YT-DLP - 具有附加功能和修复的 youtube-dl 分支
Youtubei - 获取 Youtube 数据,例如视频、播放列表、频道、视频信息和评论、相关视频、下一个视频等等!
Golang 中的高效文件下载:综合指南
Golang 下载文件示例
新管道团队
使用 os/exec 在 Go 中执行高级命令