@@ -532,7 +532,7 @@ void YouTubeAPI::LoadSignatureDecoder() {
532532
533533 std::wstring ua (L" Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" );
534534 AimpHTTP::Get (L" https://www.youtube.com/\r\n User-Agent: " + ua, [&](unsigned char *data1, int ) {
535- std::string player = Tools::FindBetween ((char *)data1, " \" js \" :\" " , " \" " );
535+ std::string player = Tools::FindBetween ((char *)data1, " \" jsUrl \" :\" " , " \" " );
536536 if (!player.empty ()) {
537537 Tools::ReplaceString (" \\ /" , " /" , player);
538538 if (player.find (" http" ) == std::string::npos)
@@ -548,11 +548,11 @@ void YouTubeAPI::LoadSignatureDecoder() {
548548 // Taken from youtube-dl
549549 // https://github.com/ytdl-org/youtube-dl/blob/master/youtube_dl/extractor/youtube.py#L1342
550550 static std::vector<std::regex> patterns {
551- std::regex (R"PATTERN ( \b([a-zA-Z0-9$]{2})\s*=\s*function\(\s*a\s*\)\s*\{\s*a\s*=\s*a\.split\(\s*""\s*\))PATTERN " ),
552- std::regex (R"PATTERN ( \b[a-d]\s*&&\s*\([a-d]\s*=\s*([a-zA-Z0-9$]+)\(\s*decodeURIComponent\s*\([a-d]\)\),\s*[a-d]\.set\([^,]+\s*,\s*enc)PATTERN " ),
553- std::regex (R"PATTERN ( \b[cs]\s*&&\s*[adf]\.set\([^,]+\s*,\s*encodeURIComponent\s*\(\s*([a-zA-Z0-9$]+)\()PATTERN " ),
554- std::regex (R"PATTERN ( \b[a-zA-Z0-9]+\s*&&\s*[a-zA-Z0-9]+\.set\([^,]+\s*,\s*encodeURIComponent\s*\(\s*([a-zA-Z0-9$]+)\()PATTERN " ),
555- std::regex (R"PATTERN ( ([a-zA-Z0-9$]+)\s*=\s*function\(\s*a\s*\)\s*\{\s*a\s*=\s*a\.split\(\s*""\s*\))PATTERN " )
551+ std::regex (R"R ( \b([a-zA-Z0-9$]{2})\s*=\s*function\(\s*a\s*\)\s*\{\s*a\s*=\s*a\.split\(\s*""\s*\))R " ),
552+ std::regex (R"R ( \b[a-d]\s*&&\s*\([a-d]\s*=\s*([a-zA-Z0-9$]+)\(\s*decodeURIComponent\s*\([a-d]\)\),\s*[a-d]\.set\([^,]+\s*,\s*enc)R " ),
553+ std::regex (R"R ( \b[cs]\s*&&\s*[adf]\.set\([^,]+\s*,\s*encodeURIComponent\s*\(\s*([a-zA-Z0-9$]+)\()R " ),
554+ std::regex (R"R ( \b[a-zA-Z0-9]+\s*&&\s*[a-zA-Z0-9]+\.set\([^,]+\s*,\s*encodeURIComponent\s*\(\s*([a-zA-Z0-9$]+)\()R " ),
555+ std::regex (R"R ( ([a-zA-Z0-9$]+)\s*=\s*function\(\s*a\s*\)\s*\{\s*a\s*=\s*a\.split\(\s*""\s*\))R " )
556556 };
557557 std::smatch m;
558558 std::string funcsig;
0 commit comments