Автор Сообщение
SergS2
СообщениеДобавлено: Ср, Окт 02 2019 20:01   Заголовок сообщения:

[/code][Patterns]
Name = "YouTube-DL [SRG] v.2"
Version = ""
Author = ""
Comment = ""
Active = TRUE
Multi = TRUE
URL = "youtube.com/"
Bounds = "$NEST(\{,\0,\})"
Limit = 1600
Match = "*(\\\"qualityLabel\\\":\4(\,|\}|;))* & "
"*(\\"mimeType\\":\3(\,|\}|;))* &"
"*(\\"itag\\":\2(\,|\}|;))* &"
"*("url(\\)\":\\"https:\\\/\\\/\1(\,|\}|;))*"
Replace = "\0"
"$SET(GlYouTube=$GET(GlYouTube)<tr><td>"
"<a style="color:blue;" href="https://$UESC($UESC(\1))&title=$ESC(YouTube)">DOWNLOAD\t"
"\2: $UESC($UESC(\3))\</td></tr>)"

[Patterns]
Name = "YouTube-button [SRG]"
Version = ""
Author = ""
Comment = ""
Active = TRUE
Multi = TRUE
URL = "youtube.com&(^($TYPE(css)|$TYPE(js)))&$TYPE(htm)"
Bounds = ""
Limit = 12
Match = "<end>"
Replace = "\r\n<div class="prox-knp" style="left:160px;top:15px;">"
"\r\n<div class="prox-knp-div1" style="color:red;border-color:red;" onclick="obj=this.nextElementSibling.style;tmp=(obj.display!='block')?'block':'none';obj.display=tmp;return false;">Y</div>"
"\r\n<div class="prox-knp-div2" style="display: none">"
"\r\n<table>$GET(GlYouTube)</tbody>\r\n</table>"
"</div>\r\n"
"</div>\r\n"
""
""
[/code]

Ссылка получается с \\u0026

Код:

https://r11---sn-axq7sn7z.googlevideo.com//videoplayback?expire=1570056443\\u0026ei=m9SUXfaKKNmmyQXuhbuYAw\\u0026ip=213.21.62.116\\u0026id=o-AP8efqazEG_J4MtW2Agv76pECYPbF4Z8Le1dsLvI5wzK\\u0026itag=22\\u0026source=youtube\\u0026requiressl=yes\\u0026mm=31,26\\u0026mn=sn-axq7sn7z,sn-5goeen7r\\u0026ms=au,onr\\u0026mv=m\\u0026mvi=10\\u0026nh=IgpwcjAxLmxlZDAzKgkxMjcuMC4wLjE,\\u0026pl=20\\u0026initcwndbps=1433750\\u0026mime=video/mp4\\u0026ratebypass=yes\\u0026dur=3992.067\\u0026lmt=1557085621595231\\u0026mt=1570034727\\u0026fvip=5\\u0026fexp=23842630\\u0026c=WEB\\u0026txp=5535432\\u0026sparams=expire,ei,ip,id,itag,source,requiressl,mime,ratebypass,dur,lmt\\u0026sig=ALgxI2wwRQIgWyME-4S1bcLbaTj3YuYA6hVZ07STrs5SZ9VFmA2WgjUCIQC0fFToI6d0FVb9BWOS1jWIMA3bUrLTD4YqopHLevk0Vw==\\u0026lsparams=mm,mn,ms,mv,mvi,nh,pl,initcwndbps\\u0026lsig=AHylml4wRQIgfyAduGdDHcmCg9kBcc3j35hnhdM3YadQ_q5TbfieYYMCIQDCBp5hOrecKah2fhCD2hE1nrRvr4a-ILlFwhebmRHL8Q==\

Если заменить "\\u0026" на "&" и в конце убрать "==\", всё работает. Но как это сделать?
SergS
СообщениеДобавлено: Пт, Дек 21 2012 17:59   Заголовок сообщения:

youtube изминился. Первый фильтр поменять на:
Код:
[Patterns]
Name = "YouTube-DL [SRG] v.2"
Active = TRUE
Multi = TRUE
URL = "www.youtube.com/"
Bounds = "(\,*\,)\0"
Limit = 1600
Match = "*((,|\"|\\u0026)sig=\4(,|\"|\\u0026))* & "
        "*((,|\"|\\u0026)type=\3(,|\"|\\u0026))* &"
        "*((,|\"|\\u0026)itag=\2(,|\"|\\u0026))* &"
        "*(("|\\u0026)url=http%3A%2F%2F\1(,|\"|\\u0026))*"
Replace = "\0"
          "$SET(GlYouTube=$GET(GlYouTube)<tr><td>"
          "<a style="color:blue;" href="http://$UESC($UESC(\1&signature=\4))&title=$ESC(YouTube)">DOWNLOAD</a>\t"
          "<font color=green>\2:</font> $UESC($UESC(\3))\</td></tr>)"


протестил на 4-5 страницах - работает.
По идее, он не должен зависить от перемены мест аргументов.

пс: не понял "Первый шаг" тут, но, похоже, можно реализовать закачку с любой страницы(по id видео), если как-то получать и фильтровать config.info. По большому счету, это не важно, так, на заметку.
chAlx
СообщениеДобавлено: Чт, Дек 13 2012 11:35   Заголовок сообщения:

SergS писал(а):
такое ощущение, что ее сначала в замене вставляют и обнуляют, а потом в матче обрабатывают.

Возможно, это <end> так устроен. Его стоит поменять на </html> (который потом вставить в замене) -- оно и браузеру понятнее будет.
SergS
СообщениеДобавлено: Вт, Дек 11 2012 21:55   Заголовок сообщения:

Цитата:
Попробуй <end>$TST(GlYouTube=?*)

не-а, так всегда отсутствует. я пробовал и в скобках и через $GET и по первому символу. такое ощущение, что ее сначала в замене вставляют и обнуляют, а потом в матче обрабатывают.
chAlx
СообщениеДобавлено: Вт, Дек 11 2012 20:34   Заголовок сообщения:

SergS писал(а):
Нужно прилепить к кнопке в Match $TST(GlYouTube), чтоб появлялась только при наличии ссылок, не умею, не получается.


Попробуй <end>$TST(GlYouTube=?*)
SergS
СообщениеДобавлено: Вс, Дек 09 2012 05:04   Заголовок сообщения:

Youtube, надо бы довести до ума ) у меня не работают фильтры, что выше.

ниже фильтр собирает все ссылки на закачку в глобальную переменную GlYouTube.
Код:

Name = "YouTube-DL [SRG]"
Active = TRUE
URL = "www.youtube.com/"
Limit = 1600
Match = "(%26url%3Dhttp%253A%252F%252F\1%26type%3D\3%26*%26sig%3D\4%2Citag%3D([#0-99])\2)\0"
Replace = "$SET(GlYouTube=$GET(GlYouTube)"
          "<tr>"
          "<td>"
          "<a style="color:blue;" href="http://$UESC($UESC(\1&signature=\4))&title=$ESC(YouTube)">DOWNLOAD</a>\t<font color=green>\2:</font> $UESC($UESC(\3))</td>"
          "</tr>)"
          "\0"

поставил с запасом 1600 байт,т.к. долго не тестировал, что видел, хватало 1024.


Этот создаёт кнопку с листом всех форматов видео:
Код:

[Patterns]
Name = "YouTube-button [SRG]"
Active = TRUE
URL = "www.youtube.com/"
Limit = 12
Match = "<end>"
Replace = "<style>#prx-Yt{"
          "border: 2px solid red;"
          "position: fixed;"
          "top: 0px;"
          "left: 20px;"
          "height: 15px;"
          "min-width: 15px;"
          "background-color: black;"
          "color: red;"
          "font-size: 10px;"
          "font-weight: bold;"
          "text-align: center;"
          "z-index: 999999;}"
          "#prx-Yt td{"
          "background-color: rgba(198, 214, 220, 0.8);"
          "width:auto !important;"
          "height:12px;"
          "border: 1px solid red;"
          "padding: 0px 5px 0px 5px !important;"
          "}"
          "</style><div id="prx-Yt">"
          "<div onclick="obj=this.nextElementSibling.style;tmp=(obj.display!='block')?'block':'none';obj.display=tmp;return false;">Y</div>"
          "<div style="display:none;text-align:left;color:black;">\r\n<table>$GET(GlYouTube)</tbody>\r\n</table></div>\r\n"
          "</div>\r\n"


Нужно прилепить к кнопке в Match $TST(GlYouTube), чтоб появлялась только при наличии ссылок, не умею, не получается.

(Проверенно только в Опере - всё качает.)
Image

пс;поправил. лишняя скобка была
Nan0miT
СообщениеДобавлено: Чт, Сен 27 2012 00:30   Заголовок сообщения:

Я периодически читаю новости на хабре, и использую их рсс ленту в гуглридере. Но иногда, видя новость в ленте, я не могу ее прочитать, т.к. она уже закрыта. К счастью, часто спасает гугл кеш.

Данный скрипт редиректит на кеш страницы хабра в гугле.

Код:
[Patterns]
Name = "habrahabr.ru google cache page view {site} 260912 [Nano]"
Active = TRUE
URL = "([^/]++.|)habrahabr.ru/post/"
Limit = 56
Match = "(<div id="reg-wrapper")\0"
Replace = "<script>window.location.href='http://webcache.googleusercontent.com/search?q=cache:\u';</script>\0"



Особо не проверял, но вроде работает.
Sanchez
СообщениеДобавлено: Вс, Июн 19 2011 22:34   Заголовок сообщения:

странно... у меня на youtube отображаются как надо картинки превью... (Opera 10.10, WinXP)
Nan0miT
СообщениеДобавлено: Вс, Июн 19 2011 12:22   Заголовок сообщения:

Опять Opera и опять Youtube.
Новый html5 embed по непонятной пока причине не отображается в Опере. Если еще у кого такая же проблема, то можно использовать данный фильтр.

Код:
[Patterns]
Name = "youtube.com html5 embed {site} 190611 [Nano]"
Active = TRUE
Limit = 24
Match = "youtube.com/embed"
Replace = "youtube.com/v"

Nan0miT
СообщениеДобавлено: Сб, Июн 18 2011 17:02   Заголовок сообщения:

В последнее время появилась проблема с картинками на ю-тубе в Опере, а именно их отсутствие. Думаю проблема в кривом скрипте на ю-тубе, который не проставляет картинки.

Данный фильтр меняет ссылки на картинки на прямые. Т.е. картинки показываются все и сразу.

Код:
[Patterns]
Name = "youtube.com thumbnails fix {site} 180611 [Nano]"
Active = TRUE
URL = "([^/]++.|)youtube.com/"
Limit = 512
Match = "$NEST(<img,*(pixel-*.gif|)*data-thumb="(//i[0-9]+.ytimg.com/vi/*/default.jpg)\1"*(pixel-*.gif|)*,>)"
Replace = "<img src="http:\1" />"

Sanchez
СообщениеДобавлено: Пт, Апр 22 2011 14:40   Заголовок сообщения:

Спасибо за фильтр.
Цитата:
Но скрипт меня удивил, это что за обфускатор такой, раньше не встречал...

такие варезники, полезно - но опасно Wink
Nan0miT
СообщениеДобавлено: Ср, Май 26 2010 02:44   Заголовок сообщения:

Какой-то странно покриптованый скрипт на rl-team.net. Вроде как можно убить так:

Код:
[Patterns]
Name = "rl-team.net crypted ad {site} 260510 [Nano]"
Active = TRUE
URL = "([^/]++.|)rl-team.net/"
Limit = 56
Match = "\|=[^;]*;"
Replace = "=false;"



Ну и в блоклист:
([^/]++.|)votetraffic.ru/
([^/]++.|)pop-bazar.*/

И не забудьте почистить кеш.

Но скрипт меня удивил, это что за обфускатор такой, раньше не встречал...
Nan0miT
СообщениеДобавлено: Ср, Май 26 2010 01:56   Заголовок сообщения:

Фильтр, который запрещает выполнять document.write для текста со словом script.

Код:
[Patterns]
Name = "document.write no script 260510 [Nano]"
Active = TRUE
Limit = 512
Match = "($NEST(document.write\(,(*)\1,\);))\0"
Replace = "var testme = \1; if (testme.toLowerCase().indexOf("script") == -1) document.write(testme);"



Тестовая версия.
В будущем постараюсь придумать, как сузить поиск, но пока так.
Применять в особо тяжелых случаях, для конкретных сайтов. Можно и для всех, но за результат я не ручаюсь.
Smile
Alex Qwerty
СообщениеДобавлено: Чт, Май 20 2010 14:55   Заголовок сообщения:

Поищи тут "URL substitute".
Гость
СообщениеДобавлено: Чт, Май 20 2010 13:20   Заголовок сообщения:

Народ, часто бывает слушаю музыку через youtube.com и для лучшего качества АУДИО добавляю "&fmt=18" (включается стерео), вообщем, скушное это дело копипэйстить для каждого ролика в отдельности, может можно как-нибудь сделать, шоб "&fmt=18" добавлялось автоматически?! Заранее спасибо за ответ Smile
Nan0miT
СообщениеДобавлено: Сб, Май 01 2010 16:15   Заголовок сообщения:

Фильтр для рекламной странички и проверки возраста на gamespot.com

Код:
[Patterns]
Name = "gamespot.com ads page timer and age gate 010510 {site} [Nano]"
Active = TRUE
URL = "([^/]++.|)gamespot.com/"
Limit = 256
Match = "(setTimeout\('window.location.reload\(\)',[0-9]+\);) $SET(1=setTimeout('window.location.reload()',100);)"
        "|"
        "(<form class="age_gate" name="downloadAgeGate" method="post" action="*/([0-9]+)\2")\0 "
        "$SET(1=\0 style="display:none;">"
        "<select name="dob[Month]"><option label="May" value="05" selected="selected">May</option></select>"
        "<select name="dob[Day]"><option label="01" value="1" selected="selected">01</option></select>"
        "<select name="dob[Year]"><option label="1981" value="1981" selected="selected" >1981</option></select>"
        "<input type="hidden" name="nowplaying" value="\2" />"
        "<input id="autosubmit" type="submit" name="submit_btn" value="Enter" />"
        "</form>"
        "<script type="text/javascript">document.getElementById("autosubmit").click();</script>"
        "\0"
        ")"
Replace = "\1"

Nan0miT
СообщениеДобавлено: Пт, Апр 30 2010 02:52   Заголовок сообщения:

Ссылка на видео youtube.com (все доступные ссылки)

Код:
[Patterns]
Name = "youtube.com direct links (buttons) 300410 {site} [Nano]"
Active = TRUE
URL = "([^/]++.|)youtube.com/"
Limit = 20000
Match = "($NEST(<script,*(fmt_url_map*(http%3A%2F%2Fv[0-9]+.lscache[0-9]+.\w.youtube.com%2Fvideoplayback*id%3D[0-9a-z]+)\1%2C([0-9]+)\2%7C*fmt_stream_map)\9*,</script>))\0"
Replace = "\0<script type="text/javascript">"
          "var input = '\9';  "
          "var buttons = [];"
          "var uni = [];"
          "var pat=/http\%3A\%2F\%2Fv[0-9]+.lscache[0-9]+.[a-z]+.youtube.com%2Fvideoplayback.*?id%3D[0-9a-z]+%2C[0-9]+%7C/g;"
          "var matches = input.match(pat);"
          "for (i in matches) {"
          "    var ml = matches[i];"
          "    var pat2=/(http\%3A\%2F\%2Fv[0-9]+.lscache[0-9]+.[a-z]+.youtube.com%2Fvideoplayback.*?id%3D[0-9a-z]+)%2C([0-9]+)%7C/g;"
          "    var data = pat2.exec(ml);"
          "    if (uni.indexOf(data[1])>0) continue;"
          "    uni.push(data[1]);"
          "    var quality = "???p (flv)";"
          "    if (data[2] == 22) quality = "1080p HD (mp4)";"
          "    if (data[2] == 35) quality = "720p HD (mp4)";"
          "    if (data[2] == 34) quality = "480p (flv)";"
          "    if (data[2] == 5) quality = "360p (flv)";"
          "    dlink = '<button type="button" title="Download video" class="master-sprite yt-uix-button yt-uix-tooltip" href="' + unescape(data[1]) + '" onclick=";window.location.href=this.getAttribute(';"
          "    dlink += "'href'";"
          "    dlink += ');return false;"><span class="yt-uix-button-content">Download (' + quality + ')</span></button>';"
          "    buttons.push(dlink);"
          "}"
          "document.getElementById("watch-headline-user-info").innerHTML += buttons.join(' ');"
          "</script>"



В данном варианте показываются все доступные ссылки.
Особо пока не проверял, надеюсь будет работать.
Nan0miT
СообщениеДобавлено: Пт, Апр 30 2010 00:13   Заголовок сообщения:

Ссылка на видео youtube.com (кнопка)

Код:

[Patterns]
Name = "youtube.com direct link (button) 300410 {site} [Nano]"
Active = TRUE
URL = "([^/]++.|)youtube.com/"
Limit = 20000
Match = "($NEST(<script,*(http%3A%2F%2Fv[0-9]+.lscache[0-9]+.\w.youtube.com%2Fvideoplayback*id%3D[0-9a-z]+)\1%2C([0-9]+)\2%7C*,</script>))\0"
        "("
        " ($TST(\2=22) $SET(3=1080p HD (mp4)))"
        "|($TST(\2=35) $SET(3=720p HD (mp4)))"
        "|($TST(\2=34) $SET(3=480p (flv)))"
        "|($TST(\2=5)  $SET(3=360p (flv)))"
        "|($TST(\2=[0-9]+) $SET(3=undef:\2 (flv)))"
        ")"
Replace = "\0<script type="text/javascript">"
          "dlink = '<button type="button" title="Download video with best quality" class="master-sprite yt-uix-button yt-uix-tooltip" href="$UESC(\1)" onclick=";window.location.href=this.getAttribute(';"
          "dlink += "'href'";"
          "dlink += ');return false;"><span class="yt-uix-button-content">Download (Quality: \3)</span></button>';"
          "document.getElementById("watch-headline-user-info").innerHTML += dlink;"
          "</script>"



Отличие от предыдущего - ссылка оформлена в виде кнопки. Чисто для эстетов. Smile
Nan0miT
СообщениеДобавлено: Чт, Апр 29 2010 22:36   Заголовок сообщения:

Ссылка на видео youtube.com

Код:
[Patterns]
Name = "youtube.com direct link 300410 {site} [Nano]"
Active = TRUE
URL = "([^/]++.|)youtube.com/"
Limit = 20000
Match = "($NEST(<script,*(http%3A%2F%2Fv[0-9]+.lscache[0-9]+.\w.youtube.com%2Fvideoplayback*id%3D[0-9a-z]+)\1%2C([0-9]+)\2%7C*,</script>))\0"
        "("
        " ($TST(\2=22) $SET(3=1080p HD (mp4)))"
        "|($TST(\2=35) $SET(3=720p HD (mp4)))"
        "|($TST(\2=34) $SET(3=480p (flv)))"
        "|($TST(\2=5)  $SET(3=360p (flv)))"
        "|($TST(\2=[0-9]+) $SET(3=undef:\2 (flv)))"
        ")"
Replace = "\0<script type="text/javascript">"
          "document.getElementById("watch-headline-user-info").innerHTML+=' <span style="font-weight: bold;"><a style="color: red;" href="$UESC(\1)">DOWNLOAD</a> (Quality: \3)</span>';"
          "</script>"


(обновлено: 30.04.2010 00:32 Москва)

Ссылка дописыватся на странице, где-то под названием.
Сильно не заморачивался, показывается первая найденная ссылка, как правило это лучшее качество из доступных.

Не забывайте, что формат flv там чем-то подпорчен, и скачанное в данном формате видео нужно перекодировать в любое другое.
Формат mp4 пока нормальный, смотреть можно сразу после скачивания.
Nan0miT
СообщениеДобавлено: Пн, Апр 19 2010 02:13   Заголовок сообщения:

Проверка возраста на gametrailers.com

Код:
[Patterns]
Name = "NeoPlayer ageCheck 190410 [Nano]"
Active = TRUE
Bounds = "$NEST(<input,>)"
Limit = 512
Match = "*ageCheck*(\w[\w\d]+.write\([^\)]+\)\;)\1*"
Replace = "<script type="text/javascript">\1</script>"



(я не ограничивал одним сайтом, может еще где сработает)

P o w e r e d b y p h p B B© p h p B B G r o u p