告别复杂下载!用you-get 10行代码打造专属资源获取工具
你是否遇到过想保存网上视频却找不到下载按钮的尴尬?想批量下载图片却只能一张张右键另存为?作为普通用户,面对这些场景往往束手无策。而开发者们虽然可以编写爬虫,但又要处理各种网站反爬机制、视频加密算法,耗时费力。今天我要介绍的开源神器you-get,不仅能让小白用户两行命令下载全网资源,更能让开发者通过简单扩展,10行代码就能打造专属下载器。
为什么选择you-get?
you-get是一款轻量级命令行工具,能够从网页中提取并下载视频、音频、图片等媒体内容。它支持国内外主流视频网站,如YouTube、B站、抖音、优酷等,完整列表可查看src/you_get/extractors目录下的文件。
核心优势
- 简单易用:无需编程知识,一行命令即可下载资源
- 功能强大:支持视频、音频、图片等多种资源类型
- 高度可扩展:模块化设计,便于添加新网站支持
- 跨平台:兼容Windows、macOS和Linux系统
快速开始:两行命令下载全网资源
安装you-get
pip install you-get
下载示例
以YouTube视频为例,只需执行:
you-get 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
you-get会自动分析页面,显示可用的视频质量和格式:
site: YouTube
title: Me at the zoo
stream:
- itag: 43
container: webm
quality: medium
size: 0.5 MiB (564215 bytes)
# download-with: you-get --itag=43 [URL]
Downloading Me at the zoo.webm ...
100% ( 0.5/ 0.5MB) ├██████████████████████████████████┤[1/1] 6 MB/s
Saving Me at the zoo.en.srt ... Done.
更多使用方法可参考README.md。
进阶开发:10行代码打造专属下载器
you-get的强大之处不仅在于其现成的功能,更在于其高度可扩展的架构。下面我们以添加一个简单网站的支持为例,展示如何通过10行代码开发自己的下载器。
开发步骤
-
创建提取器文件:在src/you_get/extractors目录下创建新的Python文件,例如
example.py -
实现下载函数:定义一个下载函数,遵循you-get的命名规范
{site_name}_download
from you_get.extractor import VideoExtractor
from you_get.common import url_info, print_info, download_urls
def example_download(url, output_dir='.', merge=True, info_only=False, **kwargs):
# 解析网页,获取视频信息
title = "example_video" # 实际应用中应从网页提取标题
stream_url = "https://example.com/video.mp4" # 实际应用中应从网页提取真实视频URL
ext = "mp4"
size = url_info(stream_url)['size']
# 打印视频信息
print_info(site_info="Example", title=title, type="video", size=size)
# 如果只是查看信息,不下载
if not info_only:
download_urls([stream_url], title, ext, size, output_dir, merge=merge, **kwargs)
- 注册提取器:在文件末尾添加注册代码,将提取器与网站URL模式关联
from you_get.extractors import register
register('example.com', example_download)
关键函数解析
url_info(url):获取URL对应的文件大小等信息,定义在src/you_get/common.pyprint_info():打印资源信息,定义在src/you_get/common.pydownload_urls():下载URL列表,定义在src/you_get/common.py
复杂网站支持
对于需要处理视频分段、加密等复杂情况的网站,可以继承VideoExtractor类,实现更高级的功能。例如B站下载器src/you_get/extractors/bilibili.py就实现了完整的视频解析、质量选择等功能。
高级功能
自定义输出目录和文件名
you-get -o ~/Videos -O my_video.mp4 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
选择视频质量
you-get --itag=18 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
直接播放视频(不下载)
you-get -p vlc 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
插件系统
you-get还支持通过插件扩展功能,例如:
- 完成脚本:contrib/completion目录下提供了Bash、Fish和Zsh的自动补全脚本
- 播放器集成:src/you_get/cli_wrapper/player目录下提供了多种播放器的集成代码
总结
you-get不仅是一款功能强大的资源下载工具,更是一个灵活的媒体提取框架。无论是普通用户快速下载网上资源,还是开发者扩展支持新的网站,you-get都能满足需求。其简洁的API设计和模块化架构,使得扩展和定制变得异常简单,真正实现了"10行代码打造专属下载器"的目标。
如果你觉得这个工具对你有帮助,欢迎贡献代码或提出改进建议,一起完善这个强大的开源项目。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust064- DDeepSeek-V4-ProDeepSeek-V4-Pro(总参数 1.6 万亿,激活 49B)面向复杂推理和高级编程任务,在代码竞赛、数学推理、Agent 工作流等场景表现优异,性能接近国际前沿闭源模型。Python00
MiniMax-M2.7MiniMax-M2.7 是我们首个深度参与自身进化过程的模型。M2.7 具备构建复杂智能体应用框架的能力,能够借助智能体团队、复杂技能以及动态工具搜索,完成高度精细的生产力任务。Python00
GLM-5.1GLM-5.1是智谱迄今最智能的旗舰模型,也是目前全球最强的开源模型。GLM-5.1大大提高了代码能力,在完成长程任务方面提升尤为显著。和此前分钟级交互的模型不同,它能够在一次任务中独立、持续工作超过8小时,期间自主规划、执行、自我进化,最终交付完整的工程级成果。Jinja00
Kimi-K2.6Kimi K2.6 是一款开源的原生多模态智能体模型,在长程编码、编码驱动设计、主动自主执行以及群体任务编排等实用能力方面实现了显著提升。Python00
Hy3-previewHy3 preview 是由腾讯混元团队研发的2950亿参数混合专家(Mixture-of-Experts, MoE)模型,包含210亿激活参数和38亿MTP层参数。Hy3 preview是在我们重构的基础设施上训练的首款模型,也是目前发布的性能最强的模型。该模型在复杂推理、指令遵循、上下文学习、代码生成及智能体任务等方面均实现了显著提升。Python00