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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

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

Maz



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


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


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

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






yt-dlp - активный форк youtube-dl, рекомендуется к использованию.
Цели проекта: добавление новых функций, исправление известных проблем. Есть различия в поведении от основного проекта.
 
ytdl-patched - пока не понятный форк yt-dlp
 
yt-dlp для Windows XP x86
форк 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
  • BAT-ник от DeZz
  • кнопки от notinthewoods
  • BAT-ник, Downloader, расширения от 351878
  • Youtube Format IDs  
     


  • Всего записей: 38851 | Зарегистр. 26-02-2002 | Отправлено: 09:08 17-02-2024 | Исправлено: 351878, 17:25 14-03-2024
    notinthewoods



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

    Цитата:
    https://www.youtube.com/@euronewsru/streams
     
    https://www.youtube.com/watch?v=lwYzwdBiaho
    Live - True
     
    Live stream detected. Downloading...


    Цитата:
    https://www.youtube.com/@arminvanbuuren/streams
     
    https://www.youtube.com/watch?v=0FRV3xjrK4M
    Live - False
     
    No live stream detected. Waiting...

    Всего записей: 498 | Зарегистр. 31-01-2015 | Отправлено: 00:13 26-04-2024
    TomasAnders



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

    Цитата:
    Вот примеры правильной работы скрипта

    Правильной-то оно правильной... да не правильной. Этот скрипт на PowerShell  работает аналогично батнику ранее выложенному. То есть напрягая ноут тем, что всякий раз для проверки запускает программу yt-dlp. Это неправильно.  
    Вот ранее greeple уже писал почему так, когда я сказал, что гуи для бонгакамса работает вообще ненапряжно. Вот его цитата:

    Цитата:
    причина в том что тот скрипт просто curl`ом проверяет стрим, и в powershell проверяет всё что надо, а этот полностью запрашивает из yt-dlp видео, инфу, потом уже смотрит в этой инфе надо или не надо

    И тут я соглашусь с  greeple, поскольку проверку стрима в эфире надо проверять curl`ом вместо того чтоб запускать каждый раз yt-dlp.

    Всего записей: 118 | Зарегистр. 05-09-2017 | Отправлено: 00:25 26-04-2024
    greeple

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    TomasAnders
    Цитата:
    И тут я соглашусь с  greeple, поскольку проверку стрима в эфире надо проверять curl`ом вместо того чтоб запускать каждый раз yt-dlp.

    можно и в powershell
    надо парсить json с страницы
    там  

    Код:
    "title": "Трансляции", "selected": true, "content": {
        "richGridRenderer": {
            "contents": [{
                    "richItemRenderer": {
                        "content": {
                            "videoRenderer":  

    и дальше блоки с видео

    Код:
    {
                                "videoId": "lwYzwdBiaho"

    тут id и далее вместе с этим куча инфы, где есть  

    Код:
    "viewCountText": {
                                    "runs": [{
                                            "text": "440"
                                        }, {
                                            "text": " зрителей"
                                        }
                                    ]
                                }

    или

    Код:
    "shortViewCountText": {
                                    "runs": [{
                                            "text": "Зрителей: "
                                        }, {
                                            "text": "440"
                                        }
                                    ]
                                }

    или

    Код:
    "thumbnailOverlays": [{
                                        "thumbnailOverlayTimeStatusRenderer": {
                                            "text": {
                                                "runs": [{
                                                        "text": "В ЭФИРЕ"
                                                    }
                                                ],
                                                "accessibility": {
                                                    "accessibilityData": {
                                                        "label": "В ЭФИРЕ"
                                                    }
                                                }
                                            },
                                            "style": "LIVE",
                                            "icon": {
                                                "iconType": "LIVE"
                                            }
                                        }
                                    }

    у законченной трансляции будет

    Код:
    "viewCountText": {
                        "simpleText": "8 848 просмотров"
                    }


    Код:
    "shortViewCountText": {
                        "accessibility": {
                            "accessibilityData": {
                                "label": "8,8 тысячи просмотров"
                            }
                        },
                        "simpleText": "8,8 тыс. просмотров"
                    }


    Код:
    "thumbnailOverlays": [{
                            "thumbnailOverlayTimeStatusRenderer": {
                                "text": {
                                    "accessibility": {
                                        "accessibilityData": {
                                            "label": "1 час 10 минут 26 секунд"
                                        }
                                    },
                                    "simpleText": "1:10:26"
                                },
                                "style": "DEFAULT"
                            }
                        }

    тут нету "runs" в text и style дефолт, а там live, это самое нормальное место чтобы смотреть стрим это или запись
    но надо парсить json, либо ещё как-то
     
    Про скрипт с бонгой забудь, там по api всё делается, сразу запрос и получает json. Можно и тут по api сделать, но это надо ключи делать для приложения, потому что это ютуб, а не бонга

    Всего записей: 4281 | Зарегистр. 11-02-2020 | Отправлено: 01:51 26-04-2024
    notinthewoods



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

    Цитата:
    ...напрягая ноут тем, что всякий раз для проверки запускает программу yt-dlp. Это неправильно.

    А я могу сказать, что Месси круче Криштиану Роналду. И что? Где аргументы? yt-dlp делает запросы с ключом --skip-download. А чем Invoke-WebRequest (от PowerShell) хуже, чем CURL?
    По факту у меня на нормальных каналах (там, где есть вкладка "Трансляции") нет никакой повышенной нагрузки.
    Вот для сравнения скриншоты Диспетчера задач при работе скрипта и Streamlink GUI 2.04 :
    https://i.imgur.com/sLRuq0Z.png
     
    P.S. Да, забыл уточнить. Скрин для диспетчера во время работы скрипта для YouTube делал где-то через полчаса работы этого самого скрипта. Это к тому, что повышенная нагрузка на проц на том дурацком канале без вкладки "Трансляции" появлялась не сразу, через несколько минут.

    Всего записей: 498 | Зарегистр. 31-01-2015 | Отправлено: 02:57 26-04-2024 | Исправлено: notinthewoods, 03:13 26-04-2024
    insorg



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

    Цитата:
    я вот только подозрею что гугл всё конвертит в опус/вп9  

    Они параллельно кодирую все свои форматы из изначально загружаемого туда исходника. Да и всё.
    Превращать это в очередь-цепочку никто в здравом уме не станет. Это ж кратное увеличение времени обработки.
    Потому "бегать за опусом" имеет смысл только ради 774 потока, который идёт аж ~250 кбит/с (по меркам ютуба - запредельная роскошь), а не его стандартные 128 кбит/с.  Хотя, ещё буквально лет 5-7 назад у них можно было и ААС 192 скачать.
    Такие дела.
     
    Добавлено:
    RazOne707

    Цитата:
     У OBS звук в AAC пишется, да по сути почти везде пишется в AAC и 320+ kbps и в 48kHZ, а не 18-20

    Так не только в ОБС. Даже мобилкино видео и мобилкины стримы с тем же ААС идут.

    Всего записей: 16875 | Зарегистр. 04-11-2010 | Отправлено: 03:17 26-04-2024
    greeple

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    notinthewoods
    Цитата:
    yt-dlp делает запросы с ключом --skip-download

    причём тут загрузка? он чтобы получить info получает ссылку и в это время идёт нагрузка на расшифровку

    Цитата:
    А чем Invoke-WebRequest (от PowerShell) хуже, чем CURL?

    ничем, я про это и написал

    Цитата:
    Это к тому, что повышенная нагрузка на проц на том дурацком канале без вкладки "Трансляции" появлялась не сразу, через несколько минут.

    она идёт пару секунд во время расшифровки когда получает инфу
    И причём тут вкладка, если надо проверять стрим это или прошедшая запись, на вкладке где есть видосы и стримы
    Когда есть видосы, то каждый запрос будет расшифровывать каждый видос и проверять его, стрим он или нет. А на некоторых каналах на этой странице кучи видео (прошедших стримов) и так как это плейлист yt-dlp каждое видео будет расшифровывать и проверять не стрим ли это, в цикле, вот отсюда и нагрузка.
    insorg
     
    ну ещё типа есть
    (141)    MP4    AAC (LC)    256 Kbps    Stereo (2)    No, YT Music*
    но я его не встречал, так же как и 774 наверно, супер редкий

    Всего записей: 4281 | Зарегистр. 11-02-2020 | Отправлено: 03:58 26-04-2024
    notinthewoods



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

    Цитата:
    он чтобы получить info получает ссылку и в это время идёт нагрузка на расшифровку

    Нагрузку при расшифровке будет получать и CURL и yt-dlp. Другими словами, у CURL в этом контексте нет здесь какого-то преимущества перед yt-dlp.

    Цитата:
    И причём тут вкладка, если надо проверять стрим это или прошедшая запись, на вкладке где есть видосы и стримы

    Так дело в том, что повышенная нагрузка на проц появлялась у меня только тогда, когда выскакивала ошибка:

    Цитата:
    ERROR: [youtube:tab] @Upolo: This channel does not have a streams tab

    То есть,

    Цитата:
    И причём тут вкладка

    как раз причем.
    Именно на канале, где нет вкладки "Трансляции" проявлялась эта фигня.
    Повторяю еще раз: по факту у меня на нормальных каналах (там, где есть вкладка "Трансляции") нет никакой повышенной нагрузки. Приведенный мною скриншот Диспетчера задач убедительно доказывает это.
    Когда была повышенная нагрузка на том самом канале @Upolo, то в Диспетчере задач была непрерывная нагрузка (~20-40%), именно непрерывная, невзирая на таймаут.

    Всего записей: 498 | Зарегистр. 31-01-2015 | Отправлено: 04:27 26-04-2024
    insorg



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

    Цитата:
    ну ещё типа есть
    (141)    MP4    AAC (LC)    256 Kbps    Stereo (2)    No, YT Music*
    но я его не встречал, так же как и 774 наверно, супер редкий

    Вообще ни разу не видел. Хотя встречал упоминание, что для какой-то из вариаций самых жирных платных премиумов оно где-то бывает для music.youtube ссылках.

    Всего записей: 16875 | Зарегистр. 04-11-2010 | Отправлено: 05:16 26-04-2024
    RazOne707

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



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

    Всего записей: 1264 | Зарегистр. 06-10-2023 | Отправлено: 09:59 26-04-2024 | Исправлено: RazOne707, 10:07 26-04-2024
    TomasAnders



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

    Цитата:
    Про скрипт с бонгой забудь, там по api всё делается, сразу запрос и получает json.  

    То есть получается, что практически чтоб парсить с ютуба ссылку на трансляцию в прямом эфире, то всякий раз при проверке, при отправке запроса на ссылку, будет запускаться программа yt-dlp? И всякий раз сам запуск этой программы yt-dlp будет нагружать процессор. Так получается?  
     

    Всего записей: 118 | Зарегистр. 05-09-2017 | Отправлено: 13:11 26-04-2024
    greeple

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    notinthewoods
    Цитата:
    Нагрузку при расшифровке будет получать и CURL и yt-dlp. Другими словами, у CURL в этом контексте нет здесь какого-то преимущества перед yt-dlp.

    зачем? там не надо ничего расшифровывать, получил страницу и всё

    Цитата:
    Повторяю еще раз: по факту у меня на нормальных каналах (там, где есть вкладка "Трансляции") нет никакой повышенной нагрузки. Приведенный мною скриншот Диспетчера задач убедительно доказывает это.
    Когда была повышенная нагрузка на том самом канале @Upolo, то в Диспетчере задач была непрерывная нагрузка (~20-40%), именно непрерывная, невзирая на таймаут.

    я его даже не запускал, а по своим тестам написал, что там у TomasAnders я не знаю это у него надо спрашивать
    твой у себя запустил, на канале https://www.youtube.com/@Wylsacom/streams  
    это
     
    Код:
    function Check-Channel {
        cls
        $webRequest = Invoke-WebRequest -Uri $id_channel -UseBasicParsing
        $content = $webRequest.Content
        if ($content -match '"title":"Трансляции"') {
            Monitoring
        } else {
            Write-Host "Channel $id_channel - no broadcasts tab. Waiting..."
            Start-Sleep -Seconds $value
            Check-Channel
        }
    }

    когда работает, пару секунд, у меня под 30-40 грузит, у него видимо тоже старый ноут какой-то
    но в остальное время конечно не грузит, я подумал что он каждое видео будет проверять в yt-dlp на live это или нет
     
    Мне непонятно как он не находит "title":"Трансляции" на странице с записями, если в коде страницы оно есть https://i.imgur.com/C2dMZph.png это же просто выбранная вкладка, а не стрим, он должен переходить в Monitoring но переходит в else и пишет Channel $id_channel - no broadcasts tab. Waiting...
    где логика?
    это взято из powershell

    Код:
    $webRequest = Invoke-WebRequest -Uri https://www.youtube.com/@Wylsacom/streams -UseBasicParsing
    >> $content = $webRequest.Content
    >>
    PS C:\Users\greeple\Desktop> $content


    Код:
    даже матч проверил
    >> if ($content -match '"title":"Трансляции"') {Write-Host "C"}
    C

    находит, а в твоём коде не заходит в мониторинг (если зашёл бы, написал же Write-Host $id_channel или Write-Host $id_video ?)
    работает, но странно почему и как
     
    а ну и здесь

    Код:
    if ($is_live -eq "true") {
            Write-Host "Live stream detected. Downloading..."
            & $yt_dlp_path --no-part $id_video
            Start-Sleep -Seconds $value
            Check-Channel

    после начала записи он уходит дальше мониторить, во время записи будет проверять есть ли стрим, может это тоже сильно нагружать во время записи (у него)
     
    Добавлено:

    Цитата:
    Именно на канале, где нет вкладки "Трансляции" проявлялась эта фигня.
    Повторяю еще раз: по факту у меня на нормальных каналах (там, где есть вкладка "Трансляции") нет никакой повышенной нагрузки. Приведенный мною скриншот Диспетчера задач убедительно доказывает это.
    Когда была повышенная нагрузка на том самом канале @Upolo, то в Диспетчере задач была непрерывная нагрузка (~20-40%), именно непрерывная, невзирая на таймаут.

    как она могла быть непрерывной если у тебя после того как не найдёт вкладку (она там есть всегда на всех ссылках если что) должен выйти в else где слип идёт?

    Код:
    $webRequest = Invoke-WebRequest -Uri https://www.youtube.com/@Wylsacom -UseBasicParsing
    >> $content = $webRequest.Content
    >> if ($content -match '"title":"Трансляции"') {Write-Host "C"}
    C

     
    Добавлено:
    RazOne707
    Цитата:
    Можно купить на торговых площадках премиум за дешево и проверить

    ну 774 доступен и без премиумов на некоторых каналах, может и 141 тоже есть где-то
     
    Добавлено:
    TomasAnders
    Цитата:
    То есть получается, что практически чтоб парсить с ютуба ссылку на трансляцию в прямом эфире, то всякий раз при проверке, при отправке запроса на ссылку, будет запускаться программа yt-dlp? И всякий раз сам запуск этой программы yt-dlp будет нагружать процессор. Так получается?

    нет
    powershell тебе нагружает что-то? только когда парсит он может нагрузить секунду, всё остальное время не активен он
    Просто сделать скрипт надо по другому. notinthewoods дал нормальный вариант, просто надо проверять не трансляции, а style тот где live и брать ссылку на первый видос на запись как он сделал, и потом не запускать дальше проверку, если уже идёт запись
    Но есть каналы где несколько стримов типа lofigirl, там сразу несколько стримов если тебе надо будет несколько, то это тоже надо учитывать и добавлять в скрипт

    Всего записей: 4281 | Зарегистр. 11-02-2020 | Отправлено: 13:25 26-04-2024
    TomasAnders



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

    Цитата:
    когда работает, пару секунд, у меня под 30-40 грузит, у него видимо тоже старый ноут какой-то

    Всё верно. У меня точно так же грузит проц через каждые 30 сек на пару сек. То есть там в скрипте же цикл повторяется каждые 30 сек, так вот всякий раз проц и грузится в момент начала этого цикла. И тоже примерно на 30-40% нагрузка на проц вырастает.
     
    И ноут у меня работает с 2008 г.  
     
    Добавлено:

    Цитата:
    powershell тебе нагружает что-то?

    А я не знаю что там нагружает, но факт в том, что когда я запускаю батник или powershell, то работают они одинаково. То есть нагрузка на проц каждые 30 сек увеличивается на несколько секунд на 30-40%. И видно и слышно как в этот момент жёсткий диски в ноуте напрягается. То есть там какие-то процессы происходят. Примерно такие как если б какую-то программу запускал.
     

    Цитата:
    только когда парсит он может нагрузить секунду, всё остальное время не активен он

    Так и есть. И когда появляется стрим в эфире, то эти скипты (что powershell, что батник) больше не посылают запросы и не нагружают ноутбук, а просто в это время ведётся запись стима с эфира. Тут всё норм.
     
    Добавлено:

    Цитата:
    Но есть каналы где несколько стримов  

    Такие каналы меня не интересуют. Всё, забыли про них. Речь только про нормальные правильные каналы у которых есть вкладка стримы и имеются записи сохранённых стримов.
     
    Добавлено:
    И ещё: во время работы и батник и powershell (разницы между ними в работе никакой) не столько процессор нагружают, хотя и это тоже, сколько жёсткий диск. Это ж получается что каждые 30 сек эти скрипты запускают yt-dlp. Она проверяет ссылку на стрим в эфире. Потом, после проверки, когда стрима в эфире нету, скрипты закрывают yt-dlp. И так каждые 30 сек: запуск ... закрытие yt-dlp. Конечно жёсткий диск ноутбука будет напрягаться каждые 30 сек. Разве это хорошо? Это так и надо что ли? Конечно НЕТ! Вот скрипт бонгакамса вообще незаметно работает. Можно ли как-нибудь и эти скрипты yt-dlp тоже довести до ума, чтоб работали так же тихо, безшумно и ненапряжно как для бонгакамса?

    Всего записей: 118 | Зарегистр. 05-09-2017 | Отправлено: 13:50 26-04-2024 | Исправлено: TomasAnders, 14:56 26-04-2024
    RazOne707

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

    Цитата:
    ну 774 доступен и без премиумов на некоторых каналах, может и 141 тоже есть где-то

    Так и указано,что без премиума - на некоторых. Some - перевод "некоторый"
    Some ЗАПЯТАЯ Youtube Music Premium.
    А саму доступность от премиума - нужно смотреть именно с премиумом, замануха или нет

    Всего записей: 1264 | Зарегистр. 06-10-2023 | Отправлено: 15:11 26-04-2024 | Исправлено: RazOne707, 15:41 26-04-2024
    greeple

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    TomasAnders
    Цитата:
    Так и есть. И когда появляется стрим в эфире, то эти скипты (что powershell, что батник) больше не посылают запросы и не нагружают ноутбук, а просто в это время ведётся запись стима с эфира. Тут всё норм.

    все будут нагружать если парсить страницу в powershell, ноут просто старый
    curl сама не парсит ничего, просто запрашивает и получает страницу
    это надо отдельно проверять чем-то, например вот JScript есть в винде

    Код:
    @if (@a==@b) @end /*
     
    :: fetch.bat <url>
    :: fetch a web page
     
    @echo off
    >nul chcp 65001
    setlocal
    if "%~1"=="" goto usage
    echo "%~1" | findstr /i "https*://" >NUL || goto usage
     
    set "URL=%~1"
    for /f "delims=" %%I in ('cscript /nologo /e:jscript "%~f0" "%URL%"') do (
        rem process the HTML line-by-line
        echo(%%I
    )
    goto :EOF
     
    :usage
    echo Usage: %~nx0 URL
    echo     for example: %~nx0 http://www.google.com/
    echo;
    echo The URL must be fully qualified, including the http:// or https://
    goto :EOF
     
    JScript */
    var x=new ActiveXObject("Microsoft.XMLHTTP");
    x.open("GET",WSH.Arguments(0),true);
    x.setRequestHeader('User-Agent','XMLHTTP/1.0');
    x.send('');
    while (x.readyState!=4) {WSH.Sleep(50)};
    if (x.responseText.match(/"LIVE"/g)){
    WScript.StdOut.WriteLine("да");
    }else {
    WScript.StdOut.WriteLine("нет");
    };

    такой скрипт без шума и пыли проверяет есть стрим или нет
    вызов такой (тут название файла sdfs.bat) вывод да или нет
    sdfs.bat "https://www.youtube.com/@LofiGirl/streams"  
    sdfs.bat "https://www.youtube.com/@Wylsacom/streams"
    sdfs.bat "https://www.youtube.com/@upolo/streams"
    надо просто подумать и сделать, но не так сходу  
     
    Добавлено:
    можно с curl написать в cmd, поиск в find или findstr, но надо как-то обрабатывать кавычки и стрелки >< в html, потому что в cmd это передача на вывод и т.д. У меня не получилось, постоянно вылеты. С JScript, WScript можно сделать, и будет быстрее работать чем powershell, но это надо правильно написать
     
    Добавлено:
    TomasAnders
    Цитата:
    Это ж получается что каждые 30 сек эти скрипты запускают yt-dlp.

    ну у меня не запускают, выше написал что он даже не выходит в мониторинг, сразу пишет no broadcasts tab. Waiting... хотя он это должен писать на любой странице потому что "title":"Трансляции" есть на любой странице
     
    Добавлено:

    Цитата:
    Можно ли как-нибудь и эти скрипты yt-dlp тоже довести до ума, чтоб работали так же тихо, безшумно и ненапряжно как для бонгакамса?

    бонгакамсовый нет, эти да, но надо подумать как

    Всего записей: 4281 | Зарегистр. 11-02-2020 | Отправлено: 17:31 26-04-2024
    notinthewoods



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

    Цитата:
    Мне непонятно как он не находит "title":"Трансляции" на странице с записями, если в коде страницы оно есть https://i.imgur.com/C2dMZph.png это же просто выбранная вкладка, а не стрим, он должен переходить в Monitoring но переходит в else и пишет Channel $id_channel - no broadcasts tab. Waiting...
    где логика?

    Если я правильно понял, ты проверял на PowerShell видимо 5 версии? Я уже писал, что старый PS в этом случае ни хрена не видит кириллицу. Это легко проверить. Исправь:
    $content -match '"title":"Трансляции"'
    на
    $content -match '"title":'
    и сможешь убедиться, что скрипт пойдет дальше к function Monitoring.
    В версии PowerShell 7 такой проблемы нет, ищет и находит.
    Я пытался добавить в начале скрипта:

    Код:
    # Установка кодировки UTF-8 для корректного отображения кириллицы
    [Console]::OutputEncoding = [System.Text.Encoding]::UTF8

    но мой встроенный в систему PS 5.1 на это никак не отреагировал. Странно, спецы по PowerShell, возможно, могли бы решить эту загвоздку..
     
    Что касается этого:

    Цитата:
    & $yt_dlp_path --no-part $id_video
            Start-Sleep -Seconds $value
            Check-Channel
     
    после начала записи он уходит дальше мониторить

    то это ты просто не понял. Таймаут и дальнейшее возвращение к Check-Channel будет происходить после завершения процесса yt-dlp.exe. Например, во время прямого эфира по техническим причинам трансляция у стримера неожиданно накроется. Процесс yt-dlp.exe завершится и только тогда будет переход к следующей команде - Start-Sleep. Даже, если стример быстро возобновит прерванную трансляцию - ну потеряешь 20-30 сек..
    Данную фишку можно воспроизвести напр. таким образом. Во время записи лайва просто завершить в Диспетчере задач все процессы ffmpeg.exe и можно будет убедиться, что через полминуты запись автоматом возобновится. То есть, скрипт не требует ручного вмешательства при подобном форс-мажоре.
     
    TomasAnders

    Цитата:
    Конечно жёсткий диск ноутбука будет напрягаться каждые 30 сек. Разве это хорошо? Это так и надо что ли? Конечно НЕТ!

    Дорогой товарищ! Что-то мне подсказывает, что ты используешь yt-dlp таким образом: качаешь yt-dlp.exe именно как приложение "всё в одном флаконе". Да только данное удовольствие (не спорю, это удобно) при работе распаковывает всё свое хозяйство во временную папку на жестком диске. Прикинь, это 15 папок и 138 файлов (в версии 2024.4.9.0), которые в режиме мониторинга каждые 30 сек создаются и через пару-тройку секунд с жесткого диска стираются!
    Я давно уже отказался от этого недоразумения. Качаю только yt-dlp_win.zip, распаковываю и пользуюсь. Несколько лишних движений, но это того стОит.
    *****
    Если проверка на наличие вкладки "Трансляции" не требуется, то скрипт можно сократить.
    Убрать весь этот блок:

    Код:
    function Check-Channel {
    ...
    }

    и, соответственно, заменить все Check-Channel (3 раза) на Monitoring
    ===================
    Обновлено.
    Вот еще можно потестить скрипт. По заявкам трудящихся)
     
    Скрипт PowerShell для мониторинга Live стримов на YouTube
    ***************
    Обновлено.
    Исправление кода скрипта от 29.04.2024
    ***************
    Обновлено.
    Исправление кода скрипта от 01.05.2024

    Всего записей: 498 | Зарегистр. 31-01-2015 | Отправлено: 07:35 27-04-2024 | Исправлено: notinthewoods, 01:34 01-05-2024
    greeple

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    notinthewoods
    Цитата:
    и сможешь убедиться, что скрипт пойдет дальше к function Monitoring.

    так отдельно я же показал что он видит всё, именно в твоём коде не заходит, а если открыть powershell и этот же код написать вручную, то находит
    ты хочешь сказать именно в скрипте ps1 когда вызываешь он не видит?
     
    Добавлено:
     
    да именно в файле
     
    файл ps1 переводишь в ansi, или в UTF-16LE и всё норм
    https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_character_encoding?view=powershell-7.4
    в 5.1 используется UTF-16LE так же как и reg файлы
     
     
     

    Цитата:
    Что касается этого:
     
    Цитата:
    & $yt_dlp_path --no-part $id_video
            Start-Sleep -Seconds $value
            Check-Channel
     
    после начала записи он уходит дальше мониторить
     
    то это ты просто не понял.

    да, обычно так и есть (в принципе как и в разных яп), тут я затупил

    Всего записей: 4281 | Зарегистр. 11-02-2020 | Отправлено: 11:37 27-04-2024 | Исправлено: greeple, 12:26 27-04-2024
    neorumtu

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

    Цитата:
    MP4    AAC (LC)    256 Kbps    Stereo
    Вообще ни разу не видел

    Был такой раньше. Исчез давно. На ютубе чего только не было, даже VP8 1080p с Vorbis. Кто-то посохранял, плюшкины.

    Всего записей: 555 | Зарегистр. 30-08-2023 | Отправлено: 11:48 27-04-2024
    greeple

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

    Всего записей: 4281 | Зарегистр. 11-02-2020 | Отправлено: 12:25 27-04-2024 | Исправлено: greeple, 12:25 27-04-2024
    TomasAnders



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

    Цитата:
    Дорогой товарищ! Что-то мне подсказывает, что ты используешь yt-dlp таким образом: качаешь yt-dlp.exe именно как приложение "всё в одном флаконе". Да только данное удовольствие (не спорю, это удобно) при работе распаковывает всё свое хозяйство во временную папку на жестком диске. Прикинь, это 15 папок и 138 файлов (в версии 2024.4.9.0), которые в режиме мониторинга каждые 30 сек создаются и через пару-тройку секунд с жесткого диска стираются!

    Да, верно, так оно у меня всё и происходит. И это весьма напряжно и для ноута в целом и для проца с жёстким диском в частности ))

    Цитата:
    Я давно уже отказался от этого недоразумения. Качаю только yt-dlp_win.zip, распаковываю и пользуюсь. Несколько лишних движений, но это того стОит.

    Согласен. Но у меня винда 32-х битная и найти yt-dlp_win.zip 86-версии довольно проблемно. Щас искал на github и не нашол. Поэтому как быть, пока не знаю. https://i.imgur.com/tqUfKMU.png

    Цитата:
    Вот еще можно потестить скрипт. По заявкам трудящихся) Скрипт делает лишь один запрос к URL канала средствами PowerShell. Полученный ответ используется дважды. В первом случае определяется ID видео - последнего по дате трансляции. Затем проверка лайва, есть или нет.
    yt-dlp запускается только для записи лайв стрима.

    Скрипт хорош, работает, спасибо! Пока тестирую. Вот интересно, как он себя поведёт в случае если стрим по каким-то причинам прервётся (например алгоритмы ютуба заблокируют трансляцию если обнаружат "неприемлемый" контент), а потом через минуту снова начнётся по новой, то есть уже новый стрим на этом же канале?

    Всего записей: 118 | Зарегистр. 05-09-2017 | Отправлено: 14:06 27-04-2024 | Исправлено: TomasAnders, 15:04 27-04-2024
    greeple

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    TomasAnders
    Цитата:
    Согласен. Но у меня винда 32-х битная и найти yt-dlp_win.zip 86-версии довольно проблемно. Щас искал на github и не нашол. Поэтому как быть, пока не знаю. https://i.imgur.com/tqUfKMU.png

    бери тут yt-dlp_x86_Windows-XP.zip https://github.com/nicolaasjan/yt-dlp/releases а, не он тоже не zip там, чел мог бы собрать и в zip
    можешь youtube-dl использовать он x32 https://github.com/ytdl-org/ytdl-nightly/releases/ если нет специфических задач (потести если всё будет работать чем ты пользуешься, то как вариант) вроде он собран как py2exe версия у yt-dlp, только x32, а в yt-dlp только x64 https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_min.exe
    либо python версию https://pypi.org/project/yt-dlp/ youtube-dl | yt-dlp (Часть 2)
     
     
    Добавлено:
    хотя сейчас и  yt-dlp_x86_Windows-XP.zip https://github.com/nicolaasjan/yt-dlp/releases потестил, вроде он тоже не создаёт папку в temp, либо у меня что-то не так

    Всего записей: 4281 | Зарегистр. 11-02-2020 | Отправлено: 15:37 27-04-2024 | Исправлено: greeple, 15:50 27-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

    Компьютерный форум 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