福永医院网站建设,深圳网站设计实力乐云seo,如何建个人摄影网站,怎样开网站卖东西文章目录 关于 you-get代码调用报错处理 源码简单分析 关于 you-get
github : https://github.com/soimort/you-get
you-get 是一个有名的开源视频下载工具包#xff0c;这里不赘述。 代码调用
you-get 提供了命令行的方式下载视频#xff0c;这里介绍使用 Python 调用源代… 文章目录 关于 you-get代码调用报错处理 源码简单分析 关于 you-get
github : https://github.com/soimort/you-get
you-get 是一个有名的开源视频下载工具包这里不赘述。 代码调用
you-get 提供了命令行的方式下载视频这里介绍使用 Python 调用源代码来下载视频以便处理更多定制化的需求。
以下载 youtube 视频为例
代码逻辑如下但运行时会出现报错调整方式见下方
site YouTube()
# 使用 url 下载
url https://www.youtube.com/watch?vmchvUV0iQLg
site.download_by_url(url) # 使用 vid 下载
vid 1c3iQWFEDJI
site.download_by_vid(vid)报错处理
1、使用 url 下载时可能会报错[Failed] Unsupported URL pattern.
如果一个 url 是 https://www.youtube.com/watch?vmchvUV0iQLg那么它的 vid 是 mchvUV0iQLg。
是因为 youtube.py 中的 get_vid_from_url 没有解析到 url 中的 vid导致 prepare 函数中会将 url 传递给 download_playlist_by_url 来下载同时它不符合 playlist 的标准所以报错。
你可以更改 get_vid_from_url 的规则来识别 vid。 2、只传递 vid 来下载时程序可能崩溃因为 youtube.py 中的 prepare 函数在执行 if re.search(\Wlist, self.url) 的时候这里没有传递 url所以改为如下即可
if self.url and re.search(\Wlist, self.url) and not kwargs.get(playlist):log.w(This video is from a playlist. (use --playlist to download all videos in the playlist.))源码简单分析
在调用和打断点的过程我们可以了解到
源码主要在 src 文件夹中各个下载器在 extractors 文件夹中下载器继承自 VideoExtractor 类VideoExtractor 类内部会调用子类的 extract 来提取流的内容 调用自身的 download 方法下载视频这里会使用 common.py 文件的 download_urls 方法内部使用 ffmpeg 下载视频并根据需要将分段视频合并。
├── src
│ └── you_get
│ ├── __init__.py
│ ├── __main__.py
│ ├── cli_wrapper
│ │ ├── __init__.py
│ │ ├── downloader
│ │ │ └── __init__.py
│ │ ├── openssl
│ │ │ └── __init__.py
│ │ ├── player
│ │ │ ├── __init__.py
│ │ │ ├── __main__.py
│ │ │ ├── dragonplayer.py
│ │ │ ├── gnome_mplayer.py
│ │ │ ├── mplayer.py
│ │ │ ├── vlc.py
│ │ │ └── wmp.py
│ │ └── transcoder
│ │ ├── __init__.py
│ │ ├── ffmpeg.py
│ │ ├── libav.py
│ │ └── mencoder.py
│ ├── common.py
│ ├── extractor.py
│ ├── extractors
│ │ ├── __init__.py
│ │ ├── acfun.py
│ │ ├── alive.py
│ │ ├── ...
│ │ ├── youku.py
│ │ ├── youtube.py
│ │ └── zhihu.py
│ ├── json_output.py
│ ├── processor
│ │ ├── __init__.py
│ │ ├── ffmpeg.py
│ │ ├── join_flv.py
│ │ ├── join_mp4.py
│ │ ├── join_ts.py
│ │ └── rtmpdump.py
│ ├── util
│ │ ├── __init__.py
│ │ ├── fs.py
│ │ ├── git.py
│ │ ├── log.py
│ │ ├── os.py
│ │ ├── strings.py
│ │ └── term.py
│ └── version.py
├── tests
│ ├── __init__.py
│ ├── test.py
│ ├── test_common.py
│ └── test_util.py
├── you-get
├── you-get.json
└── you-get.plugin.zsh伊织 2023-11-09周四