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

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

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

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9

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

jasonliull



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

Текущая версия от 2019.08.13



 
youtube-dl - кроссплатформенная консольная программа для скачивания видео с YouTube.com и других сайтов.
 
Разработчик: команда ytdl-org
Статус: бесплатно (Unlicense)
Язык: английский
 
Графические интерфейсы (GUI) от сторонних разработчиков:
youtube-dl — утилита для загрузки потокового видео с видеохостингов, таких как YouTube. Эта утилита поддерживает загрузку с множества видеохостингов, помимо YouTube, что собственно понятно с названия, поддерживается такие как:
 
DepositFiles, exfm, FaceBook, Instagram, MTV, NBA, NBCNews, Rutube, Space, Statigram, Steam, Vevo, Vice, viki, Vine, vk.com и т.д. Это малая часть всех ресурсов с которыми работает youtube-dl и этот список постоянно расширяется.
 
Также, при помощи этой утилиты, есть возможность скачивать видео и с других ресурсов, которые не входят в этот список.
 
Эта маленькая утилита, но обладает весьма внушительным функционалом, например можно указать: формат, качество, имя сохраняемого файла. Может извлечь аудио-дорожку, есть возможность скачать плейлист, обладает поддержкой прокси.

Всего записей: 1703 | Зарегистр. 05-08-2012 | Отправлено: 13:44 05-03-2018 | Исправлено: eddiezato, 08:09 15-08-2019
eddiezato



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

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

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

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

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

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

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

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

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



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

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

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

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

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

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



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

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

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

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



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

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

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

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

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

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

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

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

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

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

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



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

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

Всего записей: 641 | Зарегистр. 03-03-2004 | Отправлено: 11:48 02-08-2019 | Исправлено: VitalyF, 13:15 02-08-2019
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9

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

Имя:
Пароль:
Сообщение

Для вставки имени, кликните на нем.

Опции сообщенияДобавить свою подпись
Подписаться на получение ответов по e-mail
Добавить тему в личные закладки
Разрешить смайлики?
Запретить коды


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru