这两天在折腾RSS,收集了不少RSS源,对于我等懒人来说,不开网页尽知消息RSS才是真正的利器,这两天搞定了QQ空间的RSS输出(没什么实用性…)还有新浪微博和新浪博客的RSS输出,但是我还比较喜欢的逻辑思维(在优酷),优酷并不提供RSS订阅,目前网内还没有发现什么特别有效的提取优酷订阅RSS源的方法,各种在线转换的网站基本没用,这等还要打开网页才能干的麻烦不能忍,所以动手研究了一下怎么把优酷订阅搞成RSS源,成功了,非常爽。
其实本无头绪,打开逻辑思维的某个视频播放页面,看到这个链接很奇怪:
http://v.youku.com/v_show/id_XNzc5NjE2MzM2.html
显然XNzc5NjE2MzM是通过某种方式进行编码加密的。优酷对网址进行编码而不公开rss订阅的原因之一就是为了赚广告费。不过这种私有编码应该不好办,打开页面源码看看:
看的头大,仔细一想还是弄到本地来吧。
在GOOGLE上发现了这样一个页面:
http://u.youku.com/user_show/id_79241663.html
打开之后与其对应的是:
http://i.youku.com/u/UMzE2OTY2NjUy
【注意】之前ID是数字!!
果不出其然,是经过特殊编码过的,有这么个解析过的编码就好办了,把这个页面离线到本地之后打开其源码,发现了这么一行:
和之前的链接看到相似之处了吗?
ownerId这个字符串变量的内容“79241663”!
与之前的解密后的链接id后的数字一样!,既然得到了这个变量名那么我们一同样的方式打开逻辑思维的源码,找到了这么一坨代码:
看其中的变量:
1 | var videoId = '194904084'; |
跟上面的变量名不一样,但是还是看得出来订阅用户的ID:128391495
那么现在只剩下一个问题,优酷视频的rss输出格式是什么?
一开始我郁闷了很长时间。。。事实证明只要肯蛋疼,总会找到解决办法的。
在google中得到了一些类似这样的rss地址:
http://www.youku.com/playlist/rss/id/xxxxxx(xxxxxx代表数字id)。
同样在优酷网站上随便点开一个专辑,其网址格式为:
http://www.youku.com/playlist_show/id_xxxxxx.html
很明显,优酷网址在输出成rss地址时,会将playlist后的_show删去,之后的格式为/rss/id/xxxxxx
同理,逻辑思维的视频网址:
http://v.youku.com/v_show/id_128391495.html
输出为rss就是这样的结果:
http://www.youku.com/user/rss/id/128391495
搞定!可以在RSS订阅各种视频了,很爽。