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

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

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

Maz (17-02-2024 09:09): youtube-dl | yt-dlp (Часть 2)  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203

   

jasonliull



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

Текущая версия: 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  
     


  • Всего записей: 2539 | Зарегистр. 05-08-2012 | Отправлено: 13:44 05-03-2018 | Исправлено: Maz, 09:07 17-02-2024
    greeple

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    notinthewoods
    Цитата:
    $regex = "(?<=\?t=)\d{1,2}h?\d{0,2}m?\d{0,2}s?"

    вот этот regex кстати можно сократить до такого "(?<=t=)\d.*s" всё что справа от t= до s, отрабатывает нормально даже если дальше после секунд что то будет, то не должно захватывать
    ещё можно вот так собрать сразу в коллекцию время и букву
    $result = Select-String "(\d{1,2})([hms])" -InputObject "https://vk.com/video-176294899_456239776?t=1h2s" -AllMatches | foreach {$_.matches}
    $result.groups[0]  \\1h
    $result.groups[1]  \\1
    $result.groups[2]  \\h
    $result.groups[3]  \\2s
    $result.groups[4]  \\2
    $result.groups[5]  \\s
    если ссылка такая 1h23m2s то
    $result.groups[3]  \\23m
    $result.groups[4]  \\23
    $result.groups[5]  \\m
    и так далее, может ещё как то сократить получится
     
    Добавлено:
    или так, может даже удобней для перебора в цикле, 1,3,5 цифры, 2,4 буквы первой и второй  
    if ("https://vk.com/video-176294899_456239776?t=1m2s" -match "(\d{1,2})([hms])(\d{0,2})?([ms])?(\d{0,2})?" ){$matches }
     
    Name                           Value
    ----                           -----
    5
    4                              s
    3                              2
    2                              m
    1                              1
    0                              1m2s
     
    Добавлено:
    хотя наверно нет, не будет удобно
     
    Добавлено:
    вот так наверно хорошо для цикла "(\d{1,2}[hms])(\d{0,2}[ms])?(\d{0,2}s)?"
    2                              42s
    1                              1h
    0                              1h42s


    3                              42s
    2                              13m
    1                              1h
    0                              1h13m42s


    2                              42s
    1                              13m
    0                              13m42s


    1                              42s
    0                              42s

    Всего записей: 4252 | Зарегистр. 11-02-2020 | Отправлено: 17:28 13-05-2023
    greeple

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Nikolay1963
    Цитата:
    А для potplayer можите сделать скрипт?

    а вообще для potpalyer не надо таких скриптов если используешь сборку как у 7sh3 там есть парсер yt-dlp и он всё делает (только там vk.com в парсере не прописано, надо дописать, хотя уже смысла нет походу)
    так же вызываешь из cmd если надо и в качестве ссылки передаешь любую ссылку кроме вк

    Всего записей: 4252 | Зарегистр. 11-02-2020 | Отправлено: 12:54 14-05-2023 | Исправлено: greeple, 12:55 14-05-2023
    greeple

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

    Код:
    $url = Read-Host "URL"
    $pot_exe = "путь до\PotPlayerMini64.exe"
    $usag = "/user_agent=`"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36`""
    $regex = "(?<=\?t=)\d{1,2}h?\d{0,2}m?\d{0,2}s?"
    if ($url -match $regex) {
        $t = $matches[0]
    } else {
        $t = "0"
    }
    $hours = [int]([regex]::Match($t, '\d+h').Value.TrimEnd('h'))
    $minutes = [int]([regex]::Match($t, '\d+m').Value.TrimEnd('m'))
    $seconds = [int]([regex]::Match($t, '\d+s').Value.TrimEnd('s'))
    $time = ($hours * 3600) + ($minutes * 60) + $seconds
    $link = & yt-dlp -g $url
    if ($LASTEXITCODE -ne 0) {
        Write-Host ""
        Write-Host "This video is unavailable" -ForegroundColor Red
        Write-Host "========================="
        Read-Host "Press Enter to exit"
        exit
    }
    Start-Process "$pot_exe" -ArgumentList "$link", "$usag", "/seek=$time"

    или вот такой вариант (позже возможно будет покороче)

    Код:
    $url = Read-Host "URL"
    if ($url -like "*?t=*") {
        $hms = $url | Select-String -Pattern "(?<=t=)(\d{1,2})h?(\d{0,2})m?(\d{0,2})s?" -AllMatches
        $1 = $hms.Matches.Groups[1].Value
        $2 = $hms.Matches.Groups[2].Value
        $3 = $hms.Matches.Groups[3].Value
        if (($hms.Matches.Value -like "*h*") -and ($hms.Matches.Value -like "*m*")) {$time = (New-TimeSpan -Hours $1 -Minutes $2 -Seconds $3).TotalSeconds}
        elseif (($hms.Matches.Value -like "*h*") -and ($hms.Matches.Value -notlike "*m*")) {$time = (New-TimeSpan -Hours $1 -Seconds $2).TotalSeconds}
        elseif ($hms.Matches.Value -like "*m*") {$time = (New-TimeSpan -Minutes $1 -Seconds $3).TotalSeconds}
        else {$time = $1}
    }
    $link = & yt-dlp -g $url
    Start-Process "путь до \PotPlayerMini64.exe" -ArgumentList "$link", "/user_agent=`"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36`"", "/seek=$time"

    жалко название в потплеер не прикрутить из yt-dlp есть же /title="title" я что то сразу не заметил
    в vlc можно таким флагом добавить --meta-title="test", а в yt-dlp получить название так -e
    только там с кодировкой русских символов проблемы почему то, в консоли норм показывает, а когда в vlc передаёшь они кракозябрами
    такой вот скрипт с названием, позже может найдется решение

    Код:
    [Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding("windows-1251")
    $url = Read-Host "URL"
    $regex = "(?<=\?t=)\d{1,2}h?\d{0,2}m?\d{0,2}s?"
    if ($url -match $regex) {
        $t = $matches[0]
    } else {
        $t = "0"
    }
    $hours = [int]([regex]::Match($t, '\d+h').Value.TrimEnd('h'))
    $minutes = [int]([regex]::Match($t, '\d+m').Value.TrimEnd('m'))
    $seconds = [int]([regex]::Match($t, '\d+s').Value.TrimEnd('s'))
    $time = ($hours * 3600) + ($minutes * 60) + $seconds
    $link = & yt-dlp -g $url
    $title = & yt-dlp -e $url
    if ($LASTEXITCODE -ne 0) {
        Write-Host ""
        Write-Host "This video is unavailable" -ForegroundColor Red
        Write-Host "========================="
        Read-Host "Press Enter to exit"
        exit
    }
    Start-Process "путь до \vlc\vlc.exe" -ArgumentList "--start-time=$time", "$link", ":http-user-agent=`"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36`"", "--meta-title=`"$title`""

     
    Добавлено:
    решилось с кодировкой, вначале скрипта добавить вот это на win10 на других наверно тоже
    [Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding("windows-1251")
     
    но вот эти варианты с utf не дают нормальных символов
    [Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding("utf-8")
    [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
     
    а вот такой [Console]::outputEncoding = [System.Text.Encoding]::GetEncoding('cp866') он так же показывает как и без записей, значит он по умолчанию и есть в консоли (я просто никогда с кодировками не имел дело)
    сверху добавил в последний скрипт кодировку
     
     
     
    сюда тоже добавлю
    написал такой батник, копируешь ссылку, кликаешь по батнику, он запускает видео из вк с юзерагентом в потплеер с названием видео

    Код:
    >nul chcp 1251
    for /f "delims=" %%i in ('
     mshta "javascript:var x=clipboardData.getData('text');if(x) new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(x);close();"
    ') do set clip=%%i
    for /f "delims=" %%i in ('yt-dlp.exe -g "%clip%"') do set link=%%i
    for /f "delims=" %%i in ('yt-dlp.exe -e "%clip%"') do set title=%%i
    start /D "C:\путь до плеера\PotPlayer\" PotPlayerMini64.exe "%link%" /user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36" /title="%title%"
    exit

    Всего записей: 4252 | Зарегистр. 11-02-2020 | Отправлено: 19:29 14-05-2023 | Исправлено: greeple, 22:23 15-05-2023
    forforapreder

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    yt-dlp больше не поддерживается? С марта нет обновлений.
     
    Появился какой-то форк: ytdl-patched, последнее обновление от 14.05.2023
    https://github.com/ytdl-patched/ytdl-patched
    По нему есть какая-нибудь информация?
    Кто-нибудь пробовал?

    Всего записей: 14 | Зарегистр. 03-09-2019 | Отправлено: 15:28 15-05-2023
    greeple

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    forforapreder
    Цитата:
    yt-dlp больше не поддерживается? С марта нет обновлений

    поддерживается, есть ночные сборки же на странице релизов есть кнопка на страницу релизов ночных https://github.com/yt-dlp/yt-dlp-nightly-builds/releases/

    Цитата:
    Появился какой-то форк: ytdl-patched

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

    Всего записей: 4252 | Зарегистр. 11-02-2020 | Отправлено: 17:19 15-05-2023
    351878



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    forforapreder
    я его ставлю в качестве временного, если основной затыкается по очередной прихоти ютуба.  
    с рутинными задачами справляются одинаково, не вдаваясь в подробности вряд ли сильно отличаются от офф ночнушек кроме как red/white icon.  да и потом: "ytdl-patched is now yt-dlp-based version"

    Всего записей: 999 | Зарегистр. 28-03-2016 | Отправлено: 19:57 15-05-2023 | Исправлено: 351878, 20:04 15-05-2023
    notinthewoods



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Не вдавался в подробности, но обратил внимание на такую вещь.
    https://github.com/yt-dlp/yt-dlp/releases
    По этой ссылке - крайний релиз yt-dlp 2023.03.04 от 5 марта 2023 за авторством github-actions
     
    https://github.com/yt-dlp/yt-dlp-nightly-builds/releases
    Здесь - ночные сборки (Latest - yt-dlp nightly 2023.05.11), автор -  pukkandan
     
    https://github.com/nicolaasjan/yt-dlp/releases
    Здесь - сборки (Latest - yt-dlp 2023.05.12), автор - github-actions
     
    Как видите, в первом и третьем случае, авторство за github-actions
    Я выводов никаких не делаю, просто информация к размышлению.

    Всего записей: 495 | Зарегистр. 31-01-2015 | Отправлено: 22:14 15-05-2023
    insorg



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    notinthewoods
    Этот "github-actions" в половине разных разрабов пишется.
    Для примера, даже тот же Ungoogled Chrome тоже с такими "авторами" значится.

    Всего записей: 16761 | Зарегистр. 04-11-2010 | Отправлено: 22:18 15-05-2023 | Исправлено: insorg, 22:20 15-05-2023
    notinthewoods



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    insorg
    Да это понятно, не понятно, может там какие-то разборки-тёрки...

    Всего записей: 495 | Зарегистр. 31-01-2015 | Отправлено: 22:23 15-05-2023
    insorg



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    notinthewoods
    Конспирология тут бесполезна. Как "залогинился" сборщик - то и написано. Не бери в голову.

    Всего записей: 16761 | Зарегистр. 04-11-2010 | Отправлено: 22:29 15-05-2023
    notinthewoods



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    insorg
    Ну, а в чем разница между релизами? Чей лучше?))

    Всего записей: 495 | Зарегистр. 31-01-2015 | Отправлено: 22:30 15-05-2023
    greeple

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    notinthewoods
    insorg
    так это бот, сборка автоматическая и релиз на экшонах, скриптами прописал что надо делать, он на серверах гита билдит сборки на бубунте или винде и релизит, любой может себе на учетке накодить так чтобы бот сам при каждом коммите в репозиторий проводил так называемое слияние со своим форком и у себя в репозитории собирал билд, как делает ffmpeg билды тут https://github.com/BtbN/FFmpeg-Builds/releases (хотя он тут тоже какие то коммиты сам вносит) ну не суть
     
    Добавлено:
    в общем много кто так собирает релизы
     
    Добавлено:
    notinthewoods
    Цитата:
    Здесь - ночные сборки (Latest - yt-dlp nightly 2023.05.11), автор -  pukkandan

     
    релиз запускается мануально пуканданом https://github.com/yt-dlp/yt-dlp/actions/runs/4333125324   https://i.imgur.com/Ou9OCNh.png
    а паблиш уже автоматом от бота https://github.com/yt-dlp/yt-dlp/actions/runs/4333125324/jobs/7566079254

    Всего записей: 4252 | Зарегистр. 11-02-2020 | Отправлено: 22:33 15-05-2023
    notinthewoods



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    greeple
    Эти тонкости - вещь интересная, но, как говорится, "в узких кругах")
    Просто вот уже возникли в теме вопросы от юзеров, что мол yt-dlp не обновляется. Может, подправите шапку? Ведь в шапке значится:
    yt-dlp - Текущая версия: 2023.03.04
    и ссылка приводится, по которой, судя по всему, уже не будет релизов. Я лично не могу понять, чьи релизы в приоритете.

    Всего записей: 495 | Зарегистр. 31-01-2015 | Отправлено: 22:56 15-05-2023
    greeple

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

    почему не будет то? всё будет, так же и раньше было, просто раньше ночные билдились не в своем репозитории, а в другом, и никто не жаловался
     
    Добавлено:
    тем более в ночнухах могут быть косяки

    Всего записей: 4252 | Зарегистр. 11-02-2020 | Отправлено: 23:20 15-05-2023
    notinthewoods



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    greeple
    Так я вот об этом:
    forforapreder писал

    Цитата:
    yt-dlp больше не поддерживается? С марта нет обновлений.

     
    Шапку бы актуализировать. У вас это должно получиться)

    Всего записей: 495 | Зарегистр. 31-01-2015 | Отправлено: 23:27 15-05-2023
    351878



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

    Всего записей: 999 | Зарегистр. 28-03-2016 | Отправлено: 23:54 15-05-2023
    greeple

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    notinthewoods
    Цитата:
    Шапку бы актуализировать. У вас это должно получиться)

    кнопку добавил на ночнухи https://i.imgur.com/Cvj1zQX.png должна по идее сама версию релизов обновлять в себе

    Всего записей: 4252 | Зарегистр. 11-02-2020 | Отправлено: 23:58 15-05-2023
    notinthewoods



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    351878
    Ключевое слово: "те кто знают" ))

    Всего записей: 495 | Зарегистр. 31-01-2015 | Отправлено: 23:59 15-05-2023
    351878



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    greeple
    я пока писал ты добавил. так может на patched лучше было б? сборки ещё свежей как я понял.

    Всего записей: 999 | Зарегистр. 28-03-2016 | Отправлено: 00:00 16-05-2023
    notinthewoods



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

    Всего записей: 495 | Зарегистр. 31-01-2015 | Отправлено: 00:01 16-05-2023
       

    Страницы: 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 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203

    Компьютерный форум Ru.Board » Компьютеры » Программы » Активные темы » youtube-dl | yt-dlp (Часть 1)
    Maz (17-02-2024 09:09): 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