优酷H5简单分析

看本帖之前需要知道一些常识,例如优酷的解析接口是ups.youku.com,还有一些js知识


1.我们先对优酷的JS查看,搜索一下解析接口

发现js里面只有https://g.alicdn.com/player/beta-ykplayer/1.6.1/youku-player.min.js有这个接口所有的请求参数

我们把这个js下载并进行格式化解包


2.在文本编辑器上搜索ups.youku.com

我们可以清楚的看到27613行到27646行都是这个解析接口整个请求参数
[HTML] 纯文本查看 复制代码

		{
			key: "getServieceMtopParam",
			value: function() {
				var t = {
					ccode: this._global.initConfig.ccode,
					client_ip: "192.168.1.1",
					utid: this._cna,
					client_ts: parseInt((new Date).getTime() / 1e3),
					version: this._global.version
				};
				t.ckey = this.getCkey() || O;
				var e = {
					vid: this._global.mediaData.mediaId
				};
				this._global.initConfig.playmode && 2 === parseInt(this._global.initConfig.playmode) && (e.playlist_id = this._global.initConfig.Fid, e.ob = this._global.initConfig.Ob),
				this._global.initConfig.showid && (e.showid = this._global.initConfig.showid, e.show_videoseq = this._global.initConfig.show_videoseq || ""),
				this._global.initConfig.currentShowId && (e.current_showid = this._global.initConfig.currentShowId),
				this._global.initConfig.inputPassword && "" !== this._global.initConfig.inputPassword && (e.password = escape(this._global.initConfig.inputPassword));
				var n = this._global.initConfig.customParam;
				n && (n.client_id && n.password && (e.client_id = n.client_id, e.password = n.password), n.stealsign && (e.r = n.stealsign)),
				1 === this._global.initConfig.nochannel && (e.nochannel = this._global.initConfig.nochannel),
				0 !== this._global.config.reload && (e.reload = 1);
				var i = this._global.adparam;
				return i.atm = this._global.initConfig.customParam && this._global.initConfig.customParam.atm || "",
				{
					steal_params: (0, a.
				default)(t),
					biz_params: (0, a.
				default)(e),
					ad_params: (0, a.
				default)(i)
				}
			}
		},

分别是ccode ,client_ip , utid ,client_ts , version ,ckey , vid
根据这个代码,我们可以知道client_ip是一个固定值,其他的我们根据js往上搜索相应的函数,client_ts就是一个10位时间戳,vid众所周知就是https://v.youku.com/v_show/id_XNDEzOTA0NTU2NA==.html,紫色部分

3.ccode参数

在27312行发现,这个ccode=0502

4.utid参数
找遍了js都没发现有thins_cna这个函数的定义,我在想,这个会不会是cookies的验证参数,
果不其然,在cookies里面发现了他,

5.version参数

version=1.6.1

5.ckey
js上搜索发现

ckey=DIl58SLFxFNndSV1GFNnMQVYkx1PP5tKe1siZu/86PR1u/Wh1Ptd+WOZsHHWxysSfAOhNJpdVWsdVJNsfJ8Sxd8WKVvNfAS8aS8fAOzYARzPyPc3JvtnPHjTdKfESTdnuTW6ZPvk2pNDh4uFzotgdMEFkzQ5wZVXl2Pf1/Y6hLK0OnCNxBj3+nb0v72gZ6b0td+WOZsHHWxysSo/0y9D2K42SaB8Y/+aD2K42SaB8Y/+ahU+WOZsHcrxysooUeND

!!现在我们所有参数都有了,先把他们组合起来试一试吧

[Asm] 纯文本查看 复制代码

http://ups.youku.com/ups/get.json?vid=XNDEzOTA0NTU2NA==&ccode=0502&client_ip=192.168.1.1&version=1.6.1&utid=e0k7FHGrqjkCAQ515EhfkC+L&ckey=DIl58SLFxFNndSV1GFNnMQVYkx1PP5tKe1siZu/86PR1u/Wh1Ptd+WOZsHHWxysSfAOhNJpdVWsdVJNsfJ8Sxd8WKVvNfAS8aS8fAOzYARzPyPc3JvtnPHjTdKfESTdnuTW6ZPvk2pNDh4uFzotgdMEFkzQ5wZVXl2Pf1/Y6hLK0OnCNxBj3+nb0v72gZ6b0td+WOZsHHWxysSo/0y9D2K42SaB8Y/+aD2K42SaB8Y/+ahU+WOZsHcrxysooUeND&client_ts=155970345
THE END
喜欢就支持以下吧
点赞0
分享
评论 抢沙发
  • 管埋员

    昵称

  • 取消

    请填写用户信息: