Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » youtube-dl | yt-dlp (Часть 2)

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117

Открыть новую тему     Написать ответ в эту тему

Maz



Дед Мазай
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Предыдущее обсуждение: часть 1

Текущая версия: 2021.12.17


youtube-dl - бесплатная консольная программа для скачивания видео с YouTube и множества других сайтов.
Сейчас проект практически не развивается, скорость скачивания с YouTube не выше 100 КБ/сек - рекомендуется использовать yt-dlp.
 
официальные ночные сборки


 
youtube-dl с фиксом скорости, не требует SSE2
youtube-dl с фиксом скорости (другой вариант)
неофициальные ночные сборки youtube-dl  





yt-dlp - активный форк youtube-dl, рекомендуется к использованию. Минимальная версия Windows 8. Linux
Цели проекта: добавление новых функций, исправление известных проблем. Есть различия в поведении от основного проекта.
 
ytdl-patched - пока непонятный форк yt-dlp
 
 
форк yt-dlp есть вариант для Windows XP x86 и Windows 7
yt-dlp для Windows XP x86 (устарело, не обновляется)
примеры для начинающих (англ)
некоторые шаблоны и в чем-то более детальная документация, чем на оф-сайте (англ)
 
Графические интерфейсы
  • MediaDownloader (2023)
  • Metube (web-UI)
  • Tartube (2023)
  • Videomass (2023)
  • Vividl (2023)
  • youtube-dl-gui (murrty, 2022)
  • youtube-dl-gui (oleksis, 2023)
  • Stacher (2023)
     
    Полезное
  • ffmpeg.exe - yt-dlp/FFmpeg-Builds | Нюанс под Windows 7 раз два три
  • кнопки от notinthewoods
  • BAT-ник, Downloader, расширения от 351878
  • Youtube Format IDs  
  • Автоматическое скачивание комментариев к видеороликам Youtube с их преобразованием в удобный для чтения HTML-формат от PREVED
  • Примеры замены\удаления текста в названии файла
  • Обход корпоративных/провайдерских блокировок
  • Обход блокировок связанный с медиаконтентом - видео, аудио..
     

  • Всего записей: 39128 | Зарегистр. 26-02-2002 | Отправлено: 09:08 17-02-2024 | Исправлено: greeple, 14:30 29-10-2024
    greeple

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Ну вообще-то мне желателен такой вариант скрипта чтоб работал автономно вообще.

    Ну по сути так он и работает, потести, я не тестил на реальном стриме если стрим закончится, как он будет дальше в цикле отрабатывать, но если самому закрыть ffmpeg, то нормально запускает заново.
    Там в названии стрима время с часами и минутами обычно если остановится и начнётся то создаст новый файл, но если минута в минуту я не пробовал, по идее не будет качать пока не изменится минута.
    А если ты с флагом --live-from-start запускаешь, то файл с одним названием, и если в папке будет файл (ну ты например уже качал стрим, он оборвался и запустился заново) то yt-dlp не будет его записывать. Будет просто цикл бесконечный с вызовом yt-dlp который будет говорить что файл уже есть. Надо тогда добавлять ещё флаги куда сохранять, не -o а по другому
    можно было бы и так -P temp:\"C:\\Temp\" -P home:\"~\\desktop\" но так тоже видит в последней файл и не запускает
    Тогда только добавляя в название время %(title)s_%(epoch-3600>%H-%M)s.%(ext)s  
    Проверил, так нормально, каждый запуск будет нормально записывать.
     
    Но ты не учитываешь что флаг каждый раз будет заново стрим сначала качать, если будет обрыв по каким-то причинам. Будет просто несколько файлов с одним стримом. А если оставить без добавления времени, то не будет записывать при обрыве, будет писать файл уже есть. Перетаскивать его скриптом в другое место, но это как последняя мера.
    А если стрим без записи идёт, то потом ты его не скачаешь, если у тебя стрим качался и тормознулся и ты в цикл попал.
    Ну кароче дальше уже сам думай как удобней, либо качать в несколько одинаковых файлов при обрыве с флагом и минутами в названии, или без флага. Потестишь - расскажешь.
     
    Добавлено:
    Просто если ты мониторишь стрим, то он у тебя и без флага будет качать сначала. Если в тайминг попадёт, то не пропустил ни секунды, а максимум может потерять 30 секунд, но может и меньше. Много не потеряешь.
     
    можешь добавить перемещение move c:\test\file1.txt D:\folder2\file2.txt пути должны быть полными

    Код:
    function w(wh){
        while (xhr(wsarg)!=true) {WSH.Sleep(30000)};
        wh.Run ("yt-dlp.exe --no-part --playlist-end 1 " + wsarg,1,true);
            WSH.Sleep(50)
        wh.Run ("move .... ",1,true);
        w(wh);
    };

    сюда, но надо в move передать название стрима, каждый раз брать из стрима не вариант, можно один раз получить и записать в переменную, но надо тестить, а если во время стрима будет меняться название, то надо тоже как то менять иначе не переместит файл и опять попадёт в цикл
    Либо называть стрим по своему и потом переименовывать, кароче очень много всего может быть

    Всего записей: 5541 | Зарегистр. 11-02-2020 | Отправлено: 21:54 28-04-2024 | Исправлено: greeple, 21:56 28-04-2024
    notinthewoods



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    TomasAnders

    Цитата:
    Этот PowerShell всю память оперативную сжирает!

    Изменил код, чтобы вместо рекурсивных вызовов использовался цикл. Потестил более получаса на канале, где в это время не было трансляции. Вроде потребление памяти не растет. Доходит где-то до 120 МБ у pwsh.exe, до 100 МБ у powershell.exe, т.е. значения то уменьшаются, то увеличиваются, но за указанные пределы не выходят.
    https://i.imgur.com/Xx3yiBg.png

    Всего записей: 514 | Зарегистр. 31-01-2015 | Отправлено: 02:46 29-04-2024
    RazOne707



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Парни. Нужно смотреть не в "Диспетчере задач" такое, а хотя бы в "Мониторе ресурсов" или сторонних утилитах.
     
    Вот на примере приложения, как это выглядит в Мониторе ресурсов:

     
    В Диспетчере задач:

     
    В System Explorer:

     
    В итоге Телеграм потребляет 300MB+320MB=620MB ОЗУ, но никак не 230MB что показывается в Диспетчере задач.
     
    Например если отключен файл подкачки, это все находится в ОЗУ, если файл подкачки - это все пишется и читается с файла подкачки, вопрос только постоянно или нет
     
    После как я установил себе 32GB ОЗУ занимался для себя этим вопросом, на примере запущенных игр и увесистых приложений Photoshopa,Premiere и почему "Диспетчер задач" отображает не то что есть на самом деле,а вернее он отображает лишь "Частный набор" занятых данных
     
    Вот тут занимаемая память именно 5.3Gb, но не 3.1Gb и не доступно 28.8Gb как это показывает "Диспетчер задач": (Легко проверяется отключением файла подкачки и началом вылетов приложений с ошибками, когда не хватает памяти)


    Всего записей: 1982 | Зарегистр. 06-10-2023 | Отправлено: 06:49 29-04-2024 | Исправлено: RazOne707, 07:09 29-04-2024
    VitalyF

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А что в этих стримах хорошего? В новостях обычно реклама, потом ( к утру) вырезают...

    Всего записей: 1370 | Зарегистр. 03-03-2004 | Отправлено: 11:56 29-04-2024
    351878



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    А что в этих стримах хорошего?  

    в смысле вообще?
    ну мне например timelapse. для творчества короч.

    Всего записей: 1207 | Зарегистр. 28-03-2016 | Отправлено: 12:52 29-04-2024
    VitalyF

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    timelaps? Что за промежуток времени?

    Всего записей: 1370 | Зарегистр. 03-03-2004 | Отправлено: 13:04 29-04-2024
    351878



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    VitalyF

    Цитата:
    timelaps? Что за промежуток времени?  

     
    ну приехали
    https://www.google.com/search?q=timelapse+video+wikipedia

    Всего записей: 1207 | Зарегистр. 28-03-2016 | Отправлено: 13:40 29-04-2024 | Исправлено: 351878, 13:41 29-04-2024
    RazOne707



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    VitalyF
    Сейчас на стримах часто если происходит во время стрима что-то, что может нарушать правила площадки - то такие стримы просто не сохраняют, из-за буквально несколько секундных моментов итд.
    А кто-то просто сразу их не сохраняет, если любит поболтать на отвлеченные темы или нет модерации при донатах

    Всего записей: 1982 | Зарегистр. 06-10-2023 | Отправлено: 13:49 29-04-2024 | Исправлено: RazOne707, 13:51 29-04-2024
    VitalyF

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Хм ... и что, в чём суть, медленное(нормальное), скопировал с большей частотой???
    Что сохранять...- мусор?

    Всего записей: 1370 | Зарегистр. 03-03-2004 | Отправлено: 13:54 29-04-2024 | Исправлено: VitalyF, 13:56 29-04-2024
    351878



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    VitalyF
    забудь. -не твоё)

    Всего записей: 1207 | Зарегистр. 28-03-2016 | Отправлено: 14:19 29-04-2024
    VitalyF

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Спасибо, но я и не думал заморачиваться! ))

    Всего записей: 1370 | Зарегистр. 03-03-2004 | Отправлено: 15:00 29-04-2024
    UnnPacK

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    не нашел темы про streamlink, спрошу здесь
    в нем можно вызывать плагин НЕ через url?
    вот так типа: streamlink -p имя_плагина "https://любой_домен/abcd"
    ?

    Всего записей: 470 | Зарегистр. 26-01-2014 | Отправлено: 19:38 29-04-2024 | Исправлено: UnnPacK, 19:38 29-04-2024
    greeple

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    UnnPacK
    Цитата:
    в нем можно вызывать плагин НЕ через url?

    хз, непонятно что там и как
    но вроде плагины если я правильно понял отдельными ключами и прописываются https://streamlink.github.io/cli.html#plugin-options
    что за "через url"?
     
    -p это путь к плееру
    streamlink -p mpv --title "{author} - {category} - {title}" <URL> [STREAM]
     
    Добавлено:
    ну и загрузка плагинов
    --plugin-dir DIRECTORY
    Load plugins from this directory.
     
    Can be set multiple times to load plugins from multiple directories.
     
    --plugin-dirs DIRECTORY
    Load plugins from a list of comma-separated directories. (deprecated)
     
    или конфиг  
     
    --config FILENAME
    Load options from this config file.
     
    Can be repeated to load multiple files, in which case the options are merged on top of each other where the last config has highest priority.
     
    не понятно что именно "вызывать плагин"

    Всего записей: 5541 | Зарегистр. 11-02-2020 | Отправлено: 20:30 29-04-2024 | Исправлено: greeple, 20:34 29-04-2024
    UnnPacK

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    greeple
    если я правильно понимаю: streamlink парсит урл и ищет подходящий плагин, а если не находит то сообщает ошибкой: No plugin can handle URL: https://site.com/abcd
    вопрос в том, можно ли указывать конкретный плагин через ключ (а не через урл)
     
    зачем это все нужно
    допустим у нас есть куча сайтов-зеркал
    и достаточно просто было-бы указывать плагин и урл с любым зеркалом
     
    пока мне видится такой "лайфхак"))
    передавать в ссылке два домена
    streamlink "https:/siteplugin.com/siteuse.net/abcd"
    а в самом плагине парсить уже что нужно

    Всего записей: 470 | Зарегистр. 26-01-2014 | Отправлено: 20:41 29-04-2024 | Исправлено: UnnPacK, 21:21 29-04-2024
    greeple

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    UnnPacK
    Цитата:
    и достаточно просто было-бы указывать плагин и урл с любым зеркалом

    так там же не будет работать плагин от сайта, там бэкэнд другой обычно
    а если сайты встраивают плееры, типа как в вк ютубовские ролики, то по ссылкам вк должно по идее качать ютубовским (в yt-dlp так https://i.imgur.com/FqDYtQW.png )
     
    ну может взять плагин который нужен например твич https://github.com/streamlink/streamlink/blob/master/src/streamlink/plugins/twitch.py или ютуб и в нём заменить url и добавить как кастом из папки, он подгрузится и будет к другому урлу тот же плагин использоваться
     
    Добавлено:
    UnnPacK
    Цитата:
    вопрос в том, можно ли указывать конкретный плагин через ключ (а не через урл)

    можно на создавать своих плагинов под урлы и добавить их ключом из папки

    Всего записей: 5541 | Зарегистр. 11-02-2020 | Отправлено: 22:24 29-04-2024
    UnnPacK

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    так там же не будет работать плагин от сайта, там бэкэнд другой обычно

    там, это где? ))
    я про online cam live, где очень много зеркал а параметры одни и те-же

    Цитата:
    можно на создавать своих плагинов под урлы и добавить их ключом из папки

    ну и нафига? когда можно проще указывать один плагин

    Цитата:
    ну может взять плагин который нужен например твич https://github.com/streamlink/streamlink/blob/master/src/streamlink/plugins/twitch.py или ютуб и в нём заменить url и добавить как кастом из папки, он подгрузится и будет к другому урлу тот же плагин использоваться

    ничего не понял
    кто на ком стоял?
    более детально можно?
     
    кстати, а как именно этот парсер плагина работает, как находит нужный плагин?
    есть вот несколько вводных:
     
    twitch.py
    class Twitch
    __plugin__ = Twitch
     
    а если допустим, будет не twitch.tv а какой-нибудь twitch.net - как различать будет?)

    Всего записей: 470 | Зарегистр. 26-01-2014 | Отправлено: 22:55 29-04-2024 | Исправлено: UnnPacK, 23:40 29-04-2024
    greeple

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    UnnPacK
    Цитата:
    ну и нафига? когда можно проще указывать один плагин

    ну так где можно то? я не вижу такого поэтому написал так как понял
    UnnPacK
    Цитата:
    кстати, а как именно этот парсер плагина работает, как находит нужный плагин?
    есть вот несколько вводных:

    я в подробности не вдавался, но вверху вот это $url twitch.tv не просто коммент наверно, выглядит как у юзерскриптов инфа, может тут он смотрит адрес, это надо погуглить
    у ютуба там несколько адресов вот
    https://github.com/streamlink/streamlink/blob/master/src/streamlink/plugins/youtube.py
     
    Добавлено:
    ну да https://streamlink.github.io/developing.html#plugins
     
    Добавлено:
    а ну да вот тут есть прикол с локальными ссылками https://streamlink.github.io/cli/tutorial.html#getting-started  https://streamlink.github.io/cli/protocols.html#streaming-protocols
    Apple HTTP Live Streaming hls://
    MPEG-DASH dash://
    Progressive HTTP/HTTPS httpstream://
    Local files can be read by adding the file:// scheme to the URL component
     
    это ты имел ввиду? типа просто протокол добавляешь и качает?
    отдельно ключа с выбором плагина я не вижу, но может тут https://github.com/streamlink/streamlink/issues есть что нибудь
     
    Добавлено:
    вот например как поменяли url для vkplay https://github.com/streamlink/streamlink/pull/5908/commits/27251ce8057a3ff2ed5d74072acad458234115be
    там ещё в regexp и в класс добавили

    Всего записей: 5541 | Зарегистр. 11-02-2020 | Отправлено: 01:18 30-04-2024
    RazOne707



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    greeple
    Это все сырцы, если не писать как это все использовать в конечном варианте, то расписывать мало смысла.

    Всего записей: 1982 | Зарегистр. 06-10-2023 | Отправлено: 07:07 30-04-2024 | Исправлено: RazOne707, 07:40 30-04-2024
    greeple

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    RazOne707
    Цитата:
    Это все сырцы, если не писать как это все использовать в конечном варианте, то расписывать мало смысла.

    не понял
    что расписывать? как это всё использовать там написано, если ты не разработчик, то тебе и не надо. А сделать в существующем плагине свои url при условии что все они зеркала, не должно быть проблемой. Если ты по компиляцию, то можешь и не компилировать, а взять плагин отдельно скачать, изменить и подгрузить из папки ключом. Да и собрать можешь если и плагин изменить смог.

    Всего записей: 5541 | Зарегистр. 11-02-2020 | Отправлено: 12:12 30-04-2024
    UnnPacK

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    greeple

    Цитата:
    подгрузить из папки ключом

    т.е вместо имени плагина указывается дира с плагином/плагинами?

    Цитата:
    отдельно ключа с выбором плагина

    да, именно это и нужно

    Всего записей: 470 | Зарегистр. 26-01-2014 | Отправлено: 12:28 30-04-2024 | Исправлено: UnnPacK, 12:29 30-04-2024
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117

    Компьютерный форум Ru.Board » Компьютеры » Программы » youtube-dl | yt-dlp (Часть 2)


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru