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

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


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



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Sisin
    Через pipe правда что-то с кэшированием. Через ссылку вроде надежнее:

    Код:
    for /f %a in ('youtube-dl -g URL') do ffmpeg -i %a -c copy out.ts

    Всего записей: 1644 | Зарегистр. 26-02-2011 | Отправлено: 18:36 29-07-2019 | Исправлено: eddiezato, 18:46 29-07-2019
    xChe



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Попробовал от нечего делать.
    У мня как-раз эта строка нормально и пишет:
    youtube-dl -f 95 -o - https://www.youtube.com/watch?v=8T9SFZDP60Q | ffmpeg -i - -c copy out.ts
    Только out.ts заполняется только после закрытия ffmpeg. Кэшируется видать куда-то.
     
    Записал 2мин40сек. Файл ~25МБ. Разрешение 1280x720 - максимальное из того что там есть.
    Выходит, это у вас что-то локальное...

    Всего записей: 4014 | Зарегистр. 07-05-2006 | Отправлено: 18:37 29-07-2019
    Sisin



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

    Цитата:
    for /f %a in ('youtube-dl -g URL') do ffmpeg -i %a -c copy out.ts  

     
    Я не пойму, что надо сделать с этим чтобы заработало?? Ссылку вместо URL добавил - не работает.

    Всего записей: 996 | Зарегистр. 07-05-2010 | Отправлено: 11:48 30-07-2019 | Исправлено: Sisin, 11:49 30-07-2019
    eddiezato



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Sisin
    Цитата:
    Я не пойму, что надо сделать с этим чтобы заработало?

    Запускать в командной строке. Вместо URL подставить ссылку на трансляцию.
     
    P.S. Вчера у провайдера были какие-то проблемы с youtube, поэтому только сегодня проверил. Сам по себе youtube-dl тоже пишет трансляцию. Записал 6 минут, все ок.

    Всего записей: 1644 | Зарегистр. 26-02-2011 | Отправлено: 13:29 30-07-2019 | Исправлено: eddiezato, 13:54 30-07-2019
    Sisin



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Все. Закончил. Может кому пригодится мой батник.
     

    Код:
    @echo OFF
     
    for /f "delims=" %%a in ('powershell -sta /nologo /noprofile /command "Add-Type -AssemblyName System.Windows.Forms;[Windows.Forms.Clipboard]::GetText()"') do set Var1=%%a
    if defined Var1 youtube-dl -F %Var1%
     
    set /P Var2="Выберите качество: "
    youtube-dl -f %Var2% -o - %Var1% | ffmpeg -i - -c copy OUT.ts  
     
    pause

     
    Работает так: Копируется ссылка в буфер обмена, запускается батник и выбирается нужное качество.

    Всего записей: 996 | Зарегистр. 07-05-2010 | Отправлено: 15:39 30-07-2019 | Исправлено: Sisin, 16:22 30-07-2019
    eddiezato



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Sisin
    Как-то вы намешали и cmd, и powershell. Хотя можно обойтись чем-то одним из этого.
    Например, powershell. Создаем script.ps1:

    Код:
    $cburl = Get-Clipboard
    Write-Host "Get formats for" $cburl
    youtube-dl -F $cburl
    $format = Read-Host -Prompt "Choose quality"
    If ($format -ne "") { $format = "$($format)/bestvideo+bestaudio/best" }
    Else { $format = "'bestvideo+bestaudio/best'" }
    youtube-dl -f $format $cburl
    $Host.UI.RawUI.ReadKey(6) | Out-Null

    Затем создаем ярлык на powershell с параметрами запуска:

    Код:
    powershell.exe -NoLogo -ExecutionPolicy ByPass -File script.ps1

    Копируем URL видео или трансляции, запускаем ярлык, выбираем качество, ждем, когда скачается.

    Всего записей: 1644 | Зарегистр. 26-02-2011 | Отправлено: 16:44 30-07-2019 | Исправлено: eddiezato, 16:51 30-07-2019
    Sisin



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

    Цитата:
    Затем создаем ярлык на powershell с параметрами запуска:  

     
    Хотелось все в одном файле, без ярлыков)))

    Всего записей: 996 | Зарегистр. 07-05-2010 | Отправлено: 16:50 30-07-2019
    eddiezato



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Sisin
    Если powershell 5 версии, то вот эту конструкцию:

    Код:
    -command "Add-Type -AssemblyName System.Windows.Forms;[Windows.Forms.Clipboard]::GetText()"

    можно заменить на

    Код:
    -command "Get-Clipboard"

    Всего записей: 1644 | Зарегистр. 26-02-2011 | Отправлено: 17:14 30-07-2019
    VitalyF

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

    Код:
    $cUrl = Get-Clipboard  
    $Template = "D:\Downloads\%(uploader)s\%(title)s.%(ext)s"  
    Write-Host "Available options (play with mpv by default):"  
    Write-Host "   da" -NoNewLine -ForegroundColor yellow  
    Write-Host " - download audio, m4a or best"  
    Write-Host "   dv" -NoNewLine -ForegroundColor yellow  
    Write-Host " - download video, best"  
    Write-Host "   dc" -NoNewLine -ForegroundColor yellow  
    Write-Host " - download, custom"  
    $Choice = Read-Host -Prompt "Choose your option"  
    Switch ($Choice)  
    {  
        "da" { youtube-dl -f "bestaudio[ext=m4a]/bestaudio" -o $Template $cUrl }  
        "dv" { youtube-dl -f "bestvideo+bestaudio/best" -o $Template $cUrl }  
        "dc" {  
            youtube-dl -F $cUrl  
            $Choice2 = Read-Host -Prompt "Choose quality"  
            if ($Choice2 -eq "") { $Choice2 = "bestvideo+bestaudio/best" }  
            youtube-dl -f $Choice2 -o $Template --merge-output-format mkv $cUrl  
        }  
        Default {mpv --ytdl-format="bestvideo+bestaudio/best" $cUrl}  
    }  
    if (-Not $?) { Read-Host -Prompt "Press 'Enter'..." }

     
    Я тут занялся символьными ссылками, т.к. youtube-dl дофига развелось, каждую обновлять лень..., например такая строка
     
    Код:
    mklink "H:\xxx\yyy\youtube-dl.exe" "D:\aaa\bbb\youtube-dl.exe"

    заменит на диске H: youtube-dl.exe ссылкой с диска D: и т.д. можно все копии заменить ссылками, тогда одну обновляем и всё.
    Можно путь к ней в переменной указать и тогда по идее не должно быть проблем, НО!
    Кроме файла можно создать символьную ссылку на папку и ссылку эту поместить на Yandex.Disk
    что я и проделал для раб. компа (без адм. прав). И тут такой облом произошёл, всё работает кроме того скрипта, что выше, жалуется, что нет такого приложения как mpv.exe, что и понятно, комп не знает путей к нему. Помогла вот такая фича >>> в строке

    Код:
    Default {.\mpv --ytdl-format="bestvideo+bestaudio/best" $cUrl}
     
    добавил слэшь с точкой, выделил красным цветом... Вот так долго объяснял, но может кому пригодится...
    Такой твикер может найденные копии файлов заменить на ссылки все сразу

    Всего записей: 1265 | Зарегистр. 03-03-2004 | Отправлено: 14:21 01-08-2019 | Исправлено: VitalyF, 14:29 01-08-2019
    eddiezato



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    VitalyF
    Это ограничения безопасности у powershell, все программы и скрипты, расположенные в текущей папке, нужно запускать с добавлением .\ к названию. У меня просто youtube-dl и mpv доступны из PATH, поэтому не требуют этого. Сам powershell в ошибке об этом сообщит.

    Всего записей: 1644 | Зарегистр. 26-02-2011 | Отправлено: 14:46 01-08-2019
    VitalyF

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Спасибо большое!
    А как такой момент решить - на дом. компе есть папка H:\MP3
    В скрипте на неё ссылка, а на раб. компе такой папки и диска нет,
    как быть? Есть каое-нить колдовство?

    Всего записей: 1265 | Зарегистр. 03-03-2004 | Отправлено: 15:00 01-08-2019
    eddiezato



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    VitalyF
    Можно спрашивать в начале скрипта какой комп: h - домашний или w - рабочий. И в зависимости от выбора присваивать нужный путь в какой-нибудь $output, который дальше использовать в скрипте.

    Всего записей: 1644 | Зарегистр. 26-02-2011 | Отправлено: 15:11 01-08-2019
    VitalyF

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ух ты... класс, как это я сам не до пёр...
    Да, а как узнать hu есть hu ?

    Всего записей: 1265 | Зарегистр. 03-03-2004 | Отправлено: 15:38 01-08-2019
    eddiezato



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    VitalyF
    Так вы скриптом задавайте вопрос и сами на него отвечайте:

    Код:
    $Choice = Read-Host -Prompt "Home (h) or work (w)"
    If ($Choice -eq "h") {$output = "H:\MP3\"}
    Else {$output = <путь на рабочем компе>}

    Всего записей: 1644 | Зарегистр. 26-02-2011 | Отправлено: 15:43 01-08-2019 | Исправлено: eddiezato, 12:16 02-08-2019
    VitalyF

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

    Всего записей: 1265 | Зарегистр. 03-03-2004 | Отправлено: 16:31 01-08-2019
    VitalyF

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    eddiezato
    Данила - мастер, не выходит каменный цветок!
    Не знаю как прицепить к скрипту сохранённый в $output путь...
    хелп...

    Всего записей: 1265 | Зарегистр. 03-03-2004 | Отправлено: 09:24 02-08-2019
    eddiezato



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

    Код:
    $Template = "H:\MP3\%(uploader)s\%(title)s.%(ext)s"

    меняем на

    Код:
    $Template = "$($output)%(uploader)s\%(title)s.%(ext)s"

    Всего записей: 1644 | Зарегистр. 26-02-2011 | Отправлено: 09:43 02-08-2019 | Исправлено: eddiezato, 09:44 02-08-2019
    VitalyF

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

    Гут, но тут другая problem

    Код:
    $Choice = Read-Host -Prompt "Home (h) or work (w)"  
    If ($Choise -eq "h") {$output = "H:\MP3" }
    Else {$output = "Z:\util\MP3" }

    почему-то не отрабатывает, всегда суёт Z:\util\MP3
     
    PS
    имя переменной $Choise не может конфликтовать с одноимённой, что ниже  

    Код:
    $Choice = Read-Host -Prompt "Home (h) or work (w)"  
    If ($Choise -eq "h") {$output = "H:\MP3"}
    Else {$output = "Z:\util\MP3"}
    $Template = "$($output)\%(uploader)s\%(title)s.%(ext)s"
    $Choice = Read-Host -Prompt "Choose your option"  
    Switch ($Choice)  

     
    PS
    переименовал на $Choice1
    всё равно IF не работает... ((

    Всего записей: 1265 | Зарегистр. 03-03-2004 | Отправлено: 10:46 02-08-2019 | Исправлено: VitalyF, 11:26 02-08-2019
    iNNOKENTIY21



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

    Всего записей: 3519 | Зарегистр. 16-08-2012 | Отправлено: 11:31 02-08-2019
    VitalyF

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть контакт!!!
    Уррра-а-а заработал IF после того, как пробелы в конце каждой строки добавил!
    Это же надо... )))
    ... Рано обрадовался, следующий небольшой трабл >>  
    в самом конце, когда audio скачалось, ffmpeg норовит его подправить и сообщает об этом,
    но на раб. компе я т.д. ему прав не хватает, просто пишет Error..., а у файла отсутствует
    расширение. На дом. компе всё Ok!
    PS
    Попросил админа, чтобы поставил ему (ffmpeg) админские права на запуск,
    под своим именем запускаю, та же фигня...
    Может youtube-dl не "видит" ffmpeg ??? Не вижу место в скрипте, где это --ffmpeg-location PATH можно добавить... ищу...
    Да собственно и как это сделать без прав тоже не знаю ... такой же финт ушами не пройдёт?? >>  

    Код:
    "da" { .\youtube-dl -f "bestaudio[ext=m4a]/bestaudio" --ffmpeg-location ".\"  -o $Template $cUrl }

    вощем пока никак, пишет

    Код:
    [ffmpeg] Correcting container in "Z:\util\MP3\Вести\aaa.m4a"
    ERROR:

    Всего записей: 1265 | Зарегистр. 03-03-2004 | Отправлено: 11:48 02-08-2019 | Исправлено: VitalyF, 13:15 02-08-2019
       

    Страницы: 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