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

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

Модерирует : 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

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

jasonliull



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


Текущая версия v2021.06.06



 
youtube-dl - кроссплатформенная бесплатная консольная программа для скачивания видео с YouTube.com и других сайтов.
 
Графические интерфейсы (GUI) от сторонних разработчиков: YDL-UI \ Vividl \ TVDownloader \ Reel Downloader [+Aria2] \ AWGG \ youtube-dlG \ Graphical YouTube-DL \ youtube-dl-gui (jely2002) \ Tartube \ youtube-dl-gui (oleksis) \  
  • Gydl \ Videomass \ Downline \ Metube (web-UI)
     
    ВАЖНО! У сабжа появился современный форк yt-dlp (как юзать? yt-dlp для XP)

  • Всего записей: 1872 | Зарегистр. 05-08-2012 | Отправлено: 13:44 05-03-2018 | Исправлено: mithridat1, 08:19 26-11-2021
    eddiezato



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

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

    Всего записей: 1359 | Зарегистр. 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 - максимальное из того что там есть.
    Выходит, это у вас что-то локальное...

    Всего записей: 3617 | Зарегистр. 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 добавил - не работает.

    Всего записей: 906 | Зарегистр. 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 минут, все ок.

    Всего записей: 1359 | Зарегистр. 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

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

    Всего записей: 906 | Зарегистр. 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 видео или трансляции, запускаем ярлык, выбираем качество, ждем, когда скачается.

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



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

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

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

    Всего записей: 906 | Зарегистр. 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"

    Всего записей: 1359 | Зарегистр. 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}
     
    добавил слэшь с точкой, выделил красным цветом... Вот так долго объяснял, но может кому пригодится...
    Такой твикер может найденные копии файлов заменить на ссылки все сразу

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



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

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

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

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



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

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

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

    Всего записей: 763 | Зарегистр. 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 = <путь на рабочем компе>}

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

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

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

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

    Всего записей: 763 | Зарегистр. 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"

    Всего записей: 1359 | Зарегистр. 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 не работает... ((

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



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

    Всего записей: 3073 | Зарегистр. 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:

    Всего записей: 763 | Зарегистр. 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

    Компьютерный форум Ru.Board » Компьютеры » Программы » youtube-dl


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

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.Board
    © Ru.Board 2000-2020

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru

    Рейтинг.ru