美文网首页python热爱者
大佬熬夜钻研,制作最新版python去除抖音水印下载工具!

大佬熬夜钻研,制作最新版python去除抖音水印下载工具!

作者: 48e0a32026ae | 来源:发表于2018-10-15 19:26 被阅读1次

    配图:短视频APP

    抖音有多火不需要我解释了吧,毕竟是头条的一张王牌。动不动一夜爆粉几千万,而我也有自己喜欢的一些抖音达人。

    由于我是一名Python程序员,所以我一直在考虑能否爬到我喜欢的作品。结果我发现人家抖音本身就提供了下载方法,可是我却发现了一个问题:所有视频都会包含水印!

    Python 和放大镜的二进制代码

    那么我就要考虑能不能爬到最原本的视频了,就是刚拍摄没有水印的视频了。水印与马赛克是被大家所厌恶的。

    经过我多次探索,我现在可以利用接口实现这个功能了,请勿用于一切学习以外的其它用途,毕竟很多做自媒体的很喜欢做这种事,我就不揭穿了!

    这是源代码:

    配图:短视频APP

    import requests

    import execjs

    # 生成参数s

    def generateStr(a):

    js = '''

    test = function(a) {

    var c = function() {

    for (var d = 0,

    f = new Array(256), g = 0; 256 != g; ++g) {

    d = g,

    d = 1 & d ? -306674912 ^ d >>> 1 : d >>> 1,

    d = 1 & d ? -306674912 ^ d >>> 1 : d >>> 1,

    d = 1 & d ? -306674912 ^ d >>> 1 : d >>> 1,

    d = 1 & d ? -306674912 ^ d >>> 1 : d >>> 1,

    d = 1 & d ? -306674912 ^ d >>> 1 : d >>> 1,

    d = 1 & d ? -306674912 ^ d >>> 1 : d >>> 1,

    d = 1 & d ? -306674912 ^ d >>> 1 : d >>> 1,

    d = 1 & d ? -306674912 ^ d >>> 1 : d >>> 1,

    f[g] = d

    }

    return "undefined" != typeof Int32Array ? new Int32Array(f) : f

    } (),

    b = function(g) {

    for (var j, k, h = -1,

    f = 0,

    d = g.length; f < d;) {

    j = g.charCodeAt(f++),

    j < 128 ? h = h >>> 8 ^ c[255 & (h ^ j)] : j < 2048 ? (h = h >>> 8 ^ c[255 & (h ^ (192 | j >> 6 & 31))], h = h >>> 8 ^ c[255 & (h ^ (128 | 63 & j))]) : j >= 55296 && j < 57344 ? (j = (1023 & j) + 64, k = 1023 & g.charCodeAt(f++), h = h >>> 8 ^ c[255 & (h ^ (240 | j >> 8 & 7))], h = h >>> 8 ^ c[255 & (h ^ (128 | j >> 2 & 63))], h = h >>> 8 ^ c[255 & (h ^ (128 | k >> 6 & 15 | (3 & j) << 4))], h = h >>> 8 ^ c[255 & (h ^ (128 | 63 & k))]) : (h = h >>> 8 ^ c[255 & (h ^ (224 | j >> 12 & 15))], h = h >>> 8 ^ c[255 & (h ^ (128 | j >> 6 & 63))], h = h >>> 8 ^ c[255 & (h ^ (128 | 63 & j))])

    }

    return h ^ -1

    };

    return b(a) >>> 0

    }

    '''

    ctx = execjs.compile(js)

    return ctx.call('test', a)

    if __name__ == '__main__':

    # 第一次访问的url(获取cookie)

    base_url = 'http://douyin.iiilab.com'

    # 解析url

    url = 'http://service0.iiilab.com/video/web/douyin'

    # link = 'http://v.douyin.com/d3pqo9/'

    # 抖音需要去水印的链接

    link = input('请输入链接')

    # r是随机数

    r = execjs.eval('Math.random().toString(10).substring(2)')

    # s是根据随机数r一定的规则生成的(太长不想分析, 直接用execjs这个库直接跑js代码)

    s = generateStr('{}@{}'.format(link, r))

    headers = {

    'Host': 'douyin.iiilab.com',

    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3514.0 Safari/537.36',

    'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',

    'Accept': 'application/json, text/javascript, */*; q=0.01',

    'Pragma': 'no-cache',

    'Cache-Control': 'no-cache',

    'Accept-Encoding': 'gzip,deflate',

    'Accept-Language': 'zh-CN,zh;q=0.9'

    }

    data = {

    'link': link,

    'r': r,

    's': s

    }

    # 使用requests的session保留cookies

    sess = requests.Session()

    # 要加入headers,不然报错

    sess.headers.update(headers)

    # 模拟正常访问网页获取cookies

    res = sess.get(base_url)

    headers = {

    'Host': 'service0.iiilab.com',

    'Origin': 'http://douyin.iiilab.com',

    'Referer': 'http://douyin.iiilab.com/',

    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3514.0 Safari/537.36',

    'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',

    'Accept': 'application/json, text/javascript, */*; q=0.01',

    'Pragma': 'no-cache',

    'Cache-Control': 'no-cache',

    'Accept-Encoding': 'gzip,deflate',

    'Accept-Language': 'zh-CN,zh;q=0.9'

    }

    sess.headers.update(headers)

    # 获取返回的数据

    res = sess.post(url, data=data, headers=headers).json()

    if res['retCode'] == 200:

    print(res)

    # 封面

    cover = res['data']['cover']

    # 标题

    title = res['data']['text']

    # 去水印后的视频

    video = res['data']['video']

    else:

    print(res)

    相关文章

      网友评论

        本文标题:大佬熬夜钻研,制作最新版python去除抖音水印下载工具!

        本文链接:https://www.haomeiwen.com/subject/ehrqzftx.html