本文档描述了 youtube-dl 中处理成人内容网站的提取器。这些专门的提取器旨在应对年龄验证系统、处理特定网站的视频分发机制以及从成人内容平台提取元数据。有关通用提取器架构的信息,请参阅 提取器系统。
本文档涵盖的提取器包括 PornHub、XTube、Tube8、SpankWire、ExtremeTube、KeezMovies、YouJizz 和 MofoSex 的提取器。
来源:youtube_dl/extractor/pornhub.py31-119 youtube_dl/extractor/xtube.py18-42 youtube_dl/extractor/tube8.py12-34 youtube_dl/extractor/spankwire.py16-27
成人内容提取器遵循与其他 youtube-dl 提取器相同的继承模式,继承自 InfoExtractor 基类。一些提取器,例如 Tube8 和 ExtremeTube,继承自其他成人内容提取器,如 KeezMovies,以共享通用的提取逻辑。
来源:youtube_dl/extractor/pornhub.py31-119 youtube_dl/extractor/keezmovies.py18-134 youtube_dl/extractor/xtube.py18-42 youtube_dl/extractor/tube8.py12-34 youtube_dl/extractor/spankwire.py16-27 youtube_dl/extractor/extremetube.py7-50 youtube_dl/extractor/youjizz.py14-95 youtube_dl/extractor/mofosex.py14-59
成人内容提取器共享几种通用模式,以应对这些网站带来的独特挑战
大多数成人内容提取器都包含绕过年龄验证提示的技术
这通常通过设置 cookie 或请求特定 URL 来实现
| 提取器 | 年龄验证技术 |
|---|---|
| PornHub | self._set_cookie(host, 'age_verified', '1') |
| XTube | 带有 'Cookie': 'age_verified=1; cookiesAccepted=1' 的标头 |
| KeezMovies | 带有 'Cookie': 'age_verified=1' 的标头 |
来源:youtube_dl/extractor/pornhub.py268 youtube_dl/extractor/xtube.py87-89 youtube_dl/extractor/keezmovies.py45
一些成人内容提取器支持身份验证以访问付费内容
PornHub 拥有一个特别全面的登录实现,可以处理常规和付费网站
登录方法会检查常规和付费域的凭据
来源:youtube_dl/extractor/pornhub.py32 youtube_dl/extractor/pornhub.py63-118
PornHub 提取器是 youtube-dl 中最全面的成人内容提取器之一。它支持多个域名,处理付费内容的身份验证,并提取广泛的元数据。
主要功能
提取器由几个类组成
PornHubBaseIE:具有通用功能的基类PornHubIE:主视频提取器PornHubUserIE:提取用户/频道/模特页面PornHubPagedVideoListIE:提取分页视频列表PornHubUserVideosUploadIE:提取用户上传的视频URL 模式
https?://(?:(?:[^/]+\.)?pornhub(?:premium)?\.(?:com|net|org)|pornhubthbh7ap3u\.onion)/(?:(?:view_video\.php|video/show)\?viewkey=|embed/)(?P<id>[\da-z]+)
来源:youtube_dl/extractor/pornhub.py121-502 youtube_dl/extractor/pornhub.py528-767
XTube 提取器同时支持旧版和新版 URL 模式
http://www.xtube.com/watch.php?v=kVTUy_G222_http://www.xtube.com/video-watch/strange-erotica-625837它提取元数据,包括标题、描述、上传者、时长、观看次数和评论次数。
URL 模式
(?x)(?:xtube:|https?://(?:www\.)?xtube\.com/(?:watch\.php\?.*\bv=|video-watch/(?:embedded/)?(?P<display_id>[^/]+)-))(?P<id>[^/?&#]+)
来源:youtube_dl/extractor/xtube.py18-188
Tube8 提取器继承自 KeezMoviesIE 并添加了额外的元数据提取
URL 模式
https?://(?:www\.)?tube8\.com/(?:[^/]+/)+(?P<display_id>[^/]+)/(?P<id>\d+)
来源:youtube_dl/extractor/tube8.py12-86
SpankWire 提取器同时处理直接 URL 和嵌入式视频。它以各种质量格式和详细元数据提取视频。
URL 模式
(?x)https?://(?:www\.)?spankwire\.com/(?:[^/]+/video|EmbedPlayer\.aspx/?\?.*?\bArticleId=)(?P<id>\d+)
来源:youtube_dl/extractor/spankwire.py16-182
KeezMovies 是几个其他成人内容提取器的基类。它提供了 _extract_info 方法,该方法被子类重用
来源:youtube_dl/extractor/keezmovies.py18-134
成人内容网站通常使用自定义的格式分发系统。提取器通常通过以下方式处理:
例如,在 PornHub 中
来源:youtube_dl/extractor/pornhub.py415-435
许多成人内容网站使用 JavaScript 来保护视频 URL。提取器通过以下方式处理:
PornHub 提取器包含复杂的 JavaScript 处理
来源:youtube_dl/extractor/pornhub.py46-56
成人内容提取器包含测试用例,这些测试用例可验证
测试用例通常包括
例如,来自 PornHub 的测试用例
来源:youtube_dl/extractor/pornhub.py133-152
成人内容提取器与 youtube-dl 的其他系统集成
成人内容提取器遵循标准的提取流程
来源: youtube_dl/extractor/pornhub.py31-502 youtube_dl/extractor/xtube.py18-188 youtube_dl/extractor/tube8.py12-86 youtube_dl/extractor/spankwire.py16-182
youtube-dl 中的成人内容提取器为各种成人内容平台提供了专门的处理。它们共享年龄验证绕过、身份验证和格式提取的通用模式,同时实现特定于站点的提取逻辑。这些提取器遵循与系统中其他提取器相同的通用体系结构,但增加了对成人内容网站提出的独特挑战的处理。