LZW解压缩算法——python版

July 6, 2019 · python · 292次阅读
def uncompress(compressed):
    k = compressed
    n = [[_] for _ in range(256)]
    q = 0
    t = 0
    Ea = 8
    H = [0 for _ in range(ceil(1.5 * len(k)))]
    K = 0
    L = []
    while (q < len(k) and 8 * (len(k) - q) - t > Ea):
        S = 0
        A = 0
        while (S < Ea):
            J = min(Ea - S, 8 - t)
            B = (k[q] << t & 255) >> 8 - J
            S = S + J
            t = t + J
            if 8 == t:
                t = 0
                q += 1
            A |= (B & 255) << Ea - S
        S = [] if A >= len(n) else n[A]
        if 0 == len(L):
            Ea += 1
        else:
            L.append(S[0]) if S else L.append(L[0])
            n.append(L)
            L = []
            if len(n) == 1 << Ea:
                Ea += 1
            S = n[A]
        A = K + len(S)
        if A >= len(H):
            J = [0 for _ in  range(ceil(1.5 * A))]
            J[:len(H)] = H
            H = J
        H[K:K+len(S)]=S
        K = A
        L += S
    return bytes(H[:K]).decode("utf-8")

ENJOY 2

Netflix

最后编辑于2年前

添加新评论

avatar

未末

118

文章数

260

评论数

7

分类

新鲜出炉の评论

获取CSDN学院m3u8解密的key
路人甲
路人甲2021-10-05

请问这个方法失效了么?获取到的是空串

获取CSDN学院m3u8解密的key
DK爱梦游
DK爱梦游2021-09-29

大佬求教,51cto的KEY怎么获取?

XstreamDL-CLI BUG修复记录
poohboy
poohboy2021-09-25

大佬,我想问一下,iqiyi的m3u8是不是没法获取?我只找到了一个dash链接,然后手动下载了里面的m4s,但用nilaoda的那个解密工具解不了,老提示获取kid失败

XstreamDL-CLI BUG修复记录
Andist
Andist2021-09-17

en……实在不好意思,代理我知道怎么启用了。我只勾选了自定义代理,但没有填写proxy参数,我太愚钝了对不起!!!

XstreamDL-CLI BUG修复记录
Andist
Andist2021-09-17

感谢您开发的这款软件,对于第一次下载mpd的小白而言很友好! 这段时间用下来就是有时候下载直连的海外视频流时可能因为网络状况不佳,会有下载不完整的问题,下载完进度没到100%,但是也合并解密了,不知道能否增加下载不完整在最后输出报错信息的功能呢? 以及我想请教一下如何让下载器使用小飞机的代理呢?我尝试在“使用自定义代理”的选项上勾选,但是好像命令行中没有变化? (另外我猜您图中的样本是在下载CP+上的用九柑仔店是吗?我也很喜欢这部剧,是我心目中排名第一的台剧哈哈)