asteroidman / wallproxy-plus

Automatically exported from code.google.com/p/wallproxy-plus
1 stars 0 forks source link

关于 autorange 的 rules 匹配 iOS 观看优酷的问题 #272

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
通过 PC 观看优酷, rules = 
/^https?:\/\/[^\/]+\/[^?]+\.(?:avi|exe|f4v|flv|hlv|m4v|m4a|mp4|mp3|ogg|rar|zip)(
?:$|\?)/ 是可以命中 flv 或 mp4 
的大文件后缀名并自动分段获取的

但是通过 iOS 观看优酷, 会出现个 flv.ts 的东西, 如下面所示

192.168.1.9 - - [2012-10-30 19:10:04] "GET 
http://f.youku.com/player/getMpegtsPath/st/flv/fileid/03000108005056D0AFD32F03BA
F2B174BD911A-8568-3A84-F2F5-8840BB2AA213/ipad0_1.ts?KM=1943d0a7a481424db&start=1
1&end=29&ts=18.84&html5=1&seg_keyframe=1&seg_no=1&seg_time=0 HTTP/1.1" 302 0
192.168.1.9 - - [2012-10-30 19:10:06] "GET 
http://65.255.34.3/6573DC00CCD4C84C6C9FFE2B54/03000108005056D0AFD32F03BAF2B174BD
911A-8568-3A84-F2F5-8840BB2AA213.flv.ts?ts_start=11&ts_end=29&ts_seg_no=1&ts_key
frame=1 HTTP/1.1" 200 3766392
192.168.1.9 - - [2012-10-30 19:10:13] "GET 
http://f.youku.com/player/getMpegtsPath/st/flv/fileid/03000108005056D0AFD32F03BA
F2B174BD911A-8568-3A84-F2F5-8840BB2AA213/ipad0_4.ts?KM=1943d0a7a481424db&start=7
0&end=89&ts=19.92&html5=1&seg_keyframe=1&seg_no=4&seg_time=0 HTTP/1.1" 302 0
192.168.1.9 - - [2012-10-30 19:10:15] "GET 
http://65.255.34.3/6573DC00AD63082FE47F9126F7/03000108005056D0AFD32F03BAF2B174BD
911A-8568-3A84-F2F5-8840BB2AA213.flv.ts?ts_start=70&ts_end=89&ts_seg_no=4&ts_key
frame=1 HTTP/1.1" 200 3889720

我直接把 ts 加入到匹配规则里, 在执行到 
http://f.youku.com/player/getMpegtsPath/st/flv/fileid/03000108005056D0AFD32F03BA
F2B174BD911A-8568-3A84-F2F5-8840BB2AA213/ipad0_1.ts? 出, 会出错, iOS 
上就提示获取视频地址失败

如果我加 flv.ts, 又完全没效果, 跟没加一样

请问有什么好的办法吗?

Original issue reported on code.google.com by heeroyuyj on 30 Oct 2012 at 11:12

GoogleCodeExporter commented 9 years ago
|flv|flv\.ts|hlv|
也可能是匹配了但该网址不支持分段下载

Original comment by www.eh...@gmail.com on 30 Oct 2012 at 12:48

GoogleCodeExporter commented 9 years ago
我是这样修改的 
/^https?:\/\/[^\/]+\/[^?]+\.(?:avi|exe|f4v|flv|hlv|m4v|m4a|mp3|mp4|ogg|rar|zip)(
\.ts)(?:$|\?)/

现在可以匹配到 flv.ts, 可是真实有效的地址还是到 flv 
结束就行了

除非可以让捕获到的 xxxxxx.flv.ts 变成 xxxxxx.flv

这要编程才行了吧?

Original comment by heeroyuyj on 30 Oct 2012 at 1:11

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
修改成 
/^https?:\/\/[^\/]+\/[^?]+\.(?:avi|exe|f4v|flv|hlv|m4v|m4a|mp4|mp3|ogg|rar|zip)(
?=\.ts$|\?)*/ 这样匹配含有 .ts 的 .flv 或 .mp4 再返回 URL, autorange 
依旧不分段下载

这是可以确定不支持了?

Original comment by heeroyuyj on 30 Oct 2012 at 1:28

GoogleCodeExporter commented 9 years ago
1. 
都说了应该是/^https?:\/\/[^\/]+\/[^?]+\.(?:f4v|flv|flv\.ts|hlv|m4v|mp4|mp3
|ogg|avi|exe)(?:$|\?)/
2. 
你加flv.ts也可以匹配到,但还会匹配到flvxts,flvyts等不符合的�
��况
3. 
youku会把.ts的地址转到.flv.ts的地址,经测试.flv.ts地址不支持R
ange
4. 
注意到.ts地址还有额外的参数start=11&end=29,也就是说这个地��
�本来就是被youku分段下载的,所以youku不支持再分段。
5. 
这里你给的两个地址经youku分段后是3.6M/3.7M,GAE理论上来说是
可以下载下来的(当然每段这么大可能需要较长时间)
6. 
如果能看的话就这么凑合吧,不能看的话你可以自己尝试在st
art=11&end=29/ts_start=11&ts_end=29上做文章,没这个打算就算了吧。

Original comment by www.eh...@gmail.com on 30 Oct 2012 at 2:01

GoogleCodeExporter commented 9 years ago
呃, 没别的意思, 只是求助一下...

我自己不是很懂正则, 之前有弄过 flv\.ts, 
后来求助编程的同学写正则, 他给我的是上面那样的, 
我就直接拿来用了 -_-

不行的话就算了吧, 我在自己家里测试 GAE 看优酷还是可以的 
(即便看超清画质), 可是单位就算标清也卡的 !@$!#$!@#%...

Original comment by heeroyuyj on 30 Oct 2012 at 2:11

GoogleCodeExporter commented 9 years ago
Moved to: Issue wallproxy:327

Original comment by heeroyuyj on 2 Dec 2012 at 4:34