告别复杂下载!用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行代码打造专属下载器"的目标。
如果你觉得这个工具对你有帮助,欢迎贡献代码或提出改进建议,一起完善这个强大的开源项目。
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5-w4a8GLM-5-w4a8基于混合专家架构,专为复杂系统工程与长周期智能体任务设计。支持单/多节点部署,适配Atlas 800T A3,采用w4a8量化技术,结合vLLM推理优化,高效平衡性能与精度,助力智能应用开发Jinja00
jiuwenclawJiuwenClaw 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。Python0180- QQwen3.5-397B-A17BQwen3.5 实现了重大飞跃,整合了多模态学习、架构效率、强化学习规模以及全球可访问性等方面的突破性进展,旨在为开发者和企业赋予前所未有的能力与效率。Jinja00
AtomGit城市坐标计划AtomGit 城市坐标计划开启!让开源有坐标,让城市有星火。致力于与城市合伙人共同构建并长期运营一个健康、活跃的本地开发者生态。01
snackjson新一代高性能 Jsonpath 框架。同时兼容 `jayway.jsonpath` 和 IETF JSONPath (RFC 9535) 标准规范(支持开放式定制)。Java00