经验与技巧
疯狂URL 5 5.x
识别媒体源
通过地址样例学会判断:是不是媒体、是什么格式、是主文件还是分片、是直播还是点播、有没有声音、清晰度多少。
抓取列表里通常有几十上百条请求,真正有用的往往只有一两条。下面用一些常见的地址样例,说明怎样一眼看出它是不是媒体源、是哪一种。
样例里的域名和参数都是虚构的,不同平台的写法会不一样,以你实际打开的网页或 App 为准。
先看三处:扩展名、协议、类型
- 扩展名:地址中
?前面的结尾部分,例如.m3u8、.flv、.mp4。 - 协议:开头的
https://、http://还是rtmp://。 - 类型:列表的“类型”列,或详情面板响应标头里的
Content-Type。有些地址没有扩展名,就靠它判断:
| Content-Type | 含义 |
|---|---|
application/vnd.apple.mpegurl、application/x-mpegurl | HLS 播放列表(.m3u8) |
video/x-flv | FLV 视频 |
video/mp4、video/webm | 视频文件或视频分片 |
audio/mp4、audio/aac、audio/mpeg | 纯音频 |
application/dash+xml | DASH 描述文件(.mpd) |
video/mp2t | TS 分片 |
常见格式样例
HTTP-FLV:一条地址就是整场直播
https://live.example.com/live/room10086.flv?sign=9f2c...&expires=1728460000- 以
.flv结尾,路径里常有live。 - 播放期间这个请求一直不结束,大小持续增长,基本就是直播。
- 后面的
sign、expires、auth_key这类参数是签名和有效期,不能删,过期后要重新抓。
RTMP:只能用网卡模式看到
rtmp://pull.example.com/live/room10086?auth_key=1728460000-0-0-8c1e...- 以
rtmp://开头,基本都是直播。 - 它不是网页请求,代理模式和浏览器抓源都看不到,要用网卡模式。
HLS:先分清主列表和子列表
HLS 由一个 .m3u8 播放列表和许多分片组成。.m3u8 是文本,选中它后在详情面板的“响应”里可以直接看到内容。
主列表:列出几种清晰度,自己不含分片。
https://vod.example.com/movie/abc123/master.m3u8#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=5000000,RESOLUTION=1920x1080,CODECS="avc1.640028,mp4a.40.2"
1080p/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2500000,RESOLUTION=1280x720,CODECS="avc1.64001f,mp4a.40.2"
720p/index.m3u8- 看到
#EXT-X-STREAM-INF就是主列表,RESOLUTION=1920x1080就是这一档的分辨率。 - 用主列表下载时,可以再选择清晰度。
子列表:一档清晰度的分片清单。
https://vod.example.com/movie/abc123/720p/index.m3u8#EXTM3U
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-TARGETDURATION:6
#EXTINF:6.000,
seg-00001.ts
#EXTINF:6.000,
seg-00002.ts
...
#EXT-X-ENDLIST.m3u8 不一定是直播,也不一定是视频,看内容判断:
| 子列表里看到 | 说明 |
|---|---|
#EXT-X-ENDLIST 或 #EXT-X-PLAYLIST-TYPE:VOD | 点播(完整视频) |
没有 #EXT-X-ENDLIST,每次刷新 #EXT-X-MEDIA-SEQUENCE 都变大 | 直播 |
#EXT-X-PLAYLIST-TYPE:EVENT | 正在进行、允许回看的直播 |
#EXT-X-PART、#EXT-X-SERVER-CONTROL,地址带 _HLS_msn=、_HLS_part= | 低延迟直播(LL-HLS) |
CODECS 里只有 mp4a,或 #EXT-X-MEDIA:TYPE=AUDIO 指向的列表 | 纯音频 |
分片:seg-00001.ts、chunk_123.m4s、init.mp4 这类只是几秒钟的片段,不要单独下载,要找它们所属的 .m3u8。
DASH:音频和视频分开
https://vod.example.com/v/abc123/manifest.mpd
https://vod.example.com/v/abc123/video_1080p_00012.m4s
https://vod.example.com/v/abc123/audio_und_00012.m4s.mpd是描述文件,.m4s是分片。- 视频和音频通常是两路,只拿到
video_…就只有画面,只拿到audio_…就只有声音。下载时优先用.mpd。
MP4 等单个文件
https://cdn.example.com/video/2026/abc123_720p.mp4?sign=5d8a...&t=1728460000.mp4、.webm这类单个文件,绝大多数是点播视频,一条地址就是完整文件。- 状态码常是 206(部分内容),这是播放器分段读取,不影响使用。
.m4a、.aac、.mp3,或地址里带audio,一般是纯音频。
WebRTC
WebRTC 直播的地址通常藏在接口返回的数据里,列表里不会出现普通的媒体请求。疯狂URL只能自动识别少数平台的 WebRTC 地址,其余的无法直接使用。
怎样看清晰度
- HLS 主列表:看
RESOLUTION=,最准确。 - 地址里的提示:很多平台会在路径或参数里写清晰度,例如
1080p、720p、_1920x1080、hd、sd、uhd、origin、auto、quality=high、height=720。不同平台写法不同,也有很多平台完全不写,只能作为参考。 - 用播放器打开:右键“使用播放器打开”,播放时查看画面信息,最直接。
快速定位的顺序
- 点“清空列表”,再开始播放。
- 只看媒体:浏览器抓源切到“视频”;代理和网卡模式看“类型”列,或在过滤器里选“仅媒体”。
- 找“主”不找“分片”:有
.m3u8或.mpd时用它们,有.flv时用它。 - 用播放器验证画面和声音都对,再复制或发送下载。
还要注意
- 地址会过期:带签名参数的地址可能几分钟到几小时就失效,抓到后尽快使用。
- 需要请求头:单独打开被拒绝时,用“调用下载器”或“复制为 cURL”,它们会带上 Referer、Cookie 等信息。
- 广告和封面:片头广告也是视频,封面是图片,按时长和画面区分。
- 只看到连接、看不到地址:内容是加密传输的,网页改用浏览器抓源,App 改用代理模式,见选对抓取模式。