This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Run from the dev tools console of any Youtube video | |
// Accurate as of June 12, 2016 | |
var videoUrls = {}; | |
ytplayer.config.args.url_encoded_fmt_stream_map.split(',').forEach(function (item) { | |
var obj = {}; | |
item.split('&').forEach(function (param) { | |
param = param.split('='); | |
obj[param[0]] = decodeURIComponent(param[1]); | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
'use strict' | |
const http = require('http') | |
const Emitter = require('events') | |
module.exports = class KoaLite extends Emitter { | |
constructor() { | |
super() | |
this.middleware = [] | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const http = require('http') | |
const crypto = require('crypto') | |
// 当前请求数据状态 | |
let STATE = { | |
fin: null, | |
opcode: null, | |
masked: null, | |
dataIndex: null, | |
maskingKey: null, |