Получение подписи видео с YouTube

Я заметил, что некоторые видео Youtube имеют зашифрованную подпись... Я немного искал проблему и узнал, что Youtube хранит Алгоритм в своем проигрывателе HTML5 Java Script, как вы можете видеть здесь: https://s.ytimg.com/yts/jsbin/html5player-iw_IL-vflC7Zf5J.js

Я нашел эти функции:

function zn(a)
{
a=a.split("");
a=a.slice(2);
a=a.reverse();
a=An(a,7);
a=An(a,21);
a=a.reverse();
return a.join("")
}

function An(a,b)
{
var c=a[0];
a[0]=a[b%a.length];
a[b]=c;
return a
}

Теперь у меня есть пара вопросов:

Во-первых, если у меня есть зашифрованная подпись, мне нужно поставить подпись через эти 2 функции, чтобы получить дешифрованный файл, или мне нужно написать противоположную функцию для дешифрования данных?

Во-вторых, есть ли способ сделать его общим, или каждый раз, когда youtube обновляет свой алгоритм зашифрованных подписей, мне нужно снова его перезаписать? (зашифрованная функция)

Спасибо!!

Ответ 1

Во-вторых, есть ли способ сделать его общим, или каждый раз, когда youtube обновляет свой алгоритм зашифрованных подписей, мне нужно снова его перезаписать? (зашифрованная функция)

Вы можете передать строку с одинаковой длиной с известными различными значениями, такими как символ String.fromCharCode(0), String.fromCharCode(1), ... - и посмотреть, куда они перемещаются в выходной строке: чтобы вся информация, необходимая для изменения преобразования, до тех пор, пока это не разрушительно (т.е. выходная строка заканчивается одинаковой длиной с каждым символом, появляющимся один раз).

Во-первых, если у меня есть зашифрованная подпись, мне нужно поставить подпись через эти 2 функции, чтобы получить дешифрованный файл, или мне нужно написать противоположную функцию для дешифрования данных?

Похоже, вы можете просто попробовать это и посмотреть, какие работы...?