使用PHP或JS解码Youtube密码签名的最佳方法

 摩西摩西 发布于 2023-01-29 19:21

use_cipher_signature = true通过http://www.youtube.com/get_video_info?&video_id=Video_Id返回字典 时,Youtube正在为某些视频使用密码签名

示例id:_JQH3G0cCtY

加密签名实际上是加密签名,任何人都可以通过几组工作签名进行调试.但是Youtube继续改变争夺战的算法.我见过几个Youtube视频下载器,它们运行顺畅而不会受到这种变化游戏的影响.我认为他们正在检查播放器并从播放器文件中提取解码脚本,因此它会让它们继续运行.

我需要一些关于在这种情况下使用的实际技术的帮助.我知道'youtube-dl' - 一个下载视频的python程序.由于我不擅长python,我认为他们使用相同的方法.

此外,还有一个用户脚本JS文件:http: //userscripts.org/scripts/show/25105,它正在做同样的事情.

任何关于解密PHP或JS中的密码的理智方法的帮助将不胜感激.

1 个回答
  • 网址结构和密码不断改变Youtube.目前,解密密码签名的最佳方法解释如下:

    Youtube中的加密签名只是"加扰"签名,您必须根据播放器文件(HTML5播放器或Flash播放器)中的算法重新排列它们.

    例如http://www.youtube.com/watch?v=UxxajLWwzqY,目前使用以下HTML5播放器文件://s.ytimg.com/yts/jsbin/html5player-vfltdb6U3.js

    在此文件中,您可以通过搜索"sig"轻松搜索签名解密代码.在这种情况下,Algo是:

    function bz(a) {
        a = a.split("");
        a = cz(a, 61);
        a = cz(a, 5);
        a = a.reverse();
        a = a.slice(2);
        a = cz(a, 69);
        a = a.slice(2);
        a = a.reverse();
        return a.join("")
    }
    
    function cz(a, b) {
        var c = a[0];
        a[0] = a[b % a.length];
        a[b] = c;
        return a
    };
    

    以上是解密代码.

    但请注意,它在更改播放器文件时会不断更改,因此您必须轻触所使用的播放器文件.

    另外,要下载具有密码签名的视频,您必须使用相同的用户代理标头,从同一IP地址发送请求以及在提取后立即发送请求来处理相同的cookie.所有这些在某些时候都是必需的

    如果对密码解密算法感兴趣,请访问CipherAPI

    另一个很酷的API:TYstream API

    2023-01-29 19:24 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有