PDA

Показать полную графическую версию : [решено] Вставка URL в youtube-dl из буфера обмена в XP


Страниц : [1] 2

madars1
28-08-2020, 00:13
Есть консольная программа youtube-dl. Качаю ей ютюб-видео к себе на комп. Так вот чтобы скачать ролик в определенном качестве и в конкретную папку, приходится делать много лишних действий:
1. запускать командную строку.
2. затем запускать саму youtube-dl через эту командную строку.
3. потом копировать туда же(заданные парамертры)...

Что хочу? - Чтобы можно было запускать батник, который в свою очередь открывает командную строку с такой строчкой...

"c:\Documents and Settings\verpoks\youtube-dl.exe" -f 18 -o "l:\bravos\ihbinbine\Biomur\%(title)s-%(id)s.%(ext)s"

Буду рад помощи!

Iska
28-08-2020, 07:12
Такой возможности в пакетных файлах нет.

Как я понимаю, всё это вот:
Что хочу? - Чтобы можно было запускать батник, который в свою очередь открывает командную строку с такой строчкой... »
исключительно для того, чтобы вставить за командой url для загрузки из буфера обмена и нажать Enter. Так?

madars1
28-08-2020, 15:17
Совершенно верно))
исключительно для того, чтобы вставить за командой url для загрузки из буфера обмена и нажать Enter.

Elven
28-08-2020, 17:03
не проще будет нарисовать батник с этой командой, который будет принимать url как параметр?
если приведенный пример запуска верен то вроде бы приблизительно так будет выглядеть:
"c:\Documents and Settings\verpoks\youtube-dl.exe" -f 18 -o "l:\bravos\ihbinbine\Biomur\%(title)s-%(id)s.%(ext)s" %1
коллеги, поправьте если не так параметр вызывается, не уверен.
соответсвенно при запуске нужно будет указывать:
имя_батника "https://youtu.be/kakouy-to_tam_vidos"
чтобы запускать его из откуда угодно можно запихнуть в %windir%/system32/ (хоть и некрасиво так делать).

Но оптимальным вариантом было бы поставить какой-нибудь плагин типа скайлоада и качать себе прямо из браузера прямо куда нужно, кмк.
да и зачем вообще что-то скачивать с тытруба?

Iska
28-08-2020, 17:59
madars1, я пользую Lua-скрипт под Far Manager'ом (Надмножество Lua является для него встроенным макроязыком). Скрипт непосредственно берёт содержимое буфера обмена, проверяет, что это содержимое является http-ссылкой и вызывает youtube-dl.exe с потребными параметрами в текущем каталоге.

Вам бы я порекомендовал для аналогичного пользования PowerShell, поскольку на нём можно реализовать всё изложенное (за исключением «текущего каталога»).

да и зачем вообще что-то скачивать с тытруба? »
Чтобы пользовать там, где интернета нет или где качество канала ниже плинтуса.

madars1
28-08-2020, 20:03
чтобы запускать его из откуда угодно можно запихнуть в %windir%/system32/ (хоть и некрасиво так делать). »

Скопировал его в директорию system32.
(содержание батника "c:\Documents and Settings\verpoks\youtube-dl.exe" -f 18 -o "l:\bravos\ihbinbine\Biomur\%(title)s-%(id)s.%(ext)s" %1)
Батник запускается, но исчезает, если же не исчезает - то вставить ссылку на ютьюб видео не получается.

=====

Вам бы я порекомендовал для аналогичного пользования PowerShell, поскольку на нём можно реализовать всё изложенное (за исключением «текущего каталога»). »

Мне скачать PowerShell и установить его. Дальше нужен скрипт?

Fors1k
28-08-2020, 20:26
Мне скачать PowerShell и установить его »
Win+Rpowershell -noexit -command $host|select version
Если будет ниже чем 5.1, то сюда https://www.microsoft.com/en-us/download/details.aspx?id=54616

madars1
28-08-2020, 20:43
Виндовс не удалось найти 'powershell'...
Может это будет важно - у меня win xp sp3

Iska
28-08-2020, 20:54
Дальше нужен скрипт? »
Ну, например:
Add-Type -AssemblyName Microsoft.VisualBasic

$sProgramm = "c:\Documents and Settings\verpoks\youtube-dl.exe"
$sUrl = [Microsoft.VisualBasic.Interaction]::InputBox('Enter URL', 'Enter URL', (Get-Clipboard).Trim())

if([System.IO.File]::Exists($sProgramm)) {
if($sUrl.Length -gt 0) {
if($sUrl.StartsWith('http://', [System.StringComparison]::CurrentCultureIgnoreCase) -or $sUrl.StartsWith('https://', [System.StringComparison]::CurrentCultureIgnoreCase)) {
$host.UI.RawUI.WindowTitle = "Video download from [$sUrl]"
Start-Process -FilePath $sProgramm -ArgumentList "-f", "18", "-o", """l:\bravos\ihbinbine\Biomur\%(title)s-%(id)s.%(ext)s""", """$sUrl""" -NoNewWindow -Wait
$host.UI.RawUI.WindowTitle = "Video download from [$sUrl] complete"
Write-Host -NoNewLine "`nPress any key to continue..."
$host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown') | Out-Null
} else {
Write-Host "Возможно, содержимое буфера обмена [$sUrl] не является http-ссылкой"
}
} else {
Write-Host 'Пустой буфер обмена'
}
} else {
Write-Host "Не удаётся найти исполняемый файл [$sProgramm]."
}

Кроме того, нужно однократно разрешить исполнение локальных неподписанных скриптов PowerShell — Win-R, powershell.exe, Enter, Set-ExecutionPolicy -ExecutionPolicy RemoteSigned, Enter (Set-ExecutionPolicy (Microsoft.PowerShell.Security) - PowerShell | Microsoft Docs (https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-executionpolicy?view=powershell-7)), если Вы ещё не сделали этого ранее.

Может это будет важно - у меня win xp sp3 »
Важно. Под Windows XP SP3 можно установить PowerShell версии не выше 2.0. Причём, в отличие от более поздних ОС, в комплекте XP нет никакой версии PowerShell.

Ссылка, вроде как, эта: Download Обновление для Windows XP (KB968930) from Official Microsoft Download Center (https://www.microsoft.com/ru-ru/download/details.aspx?id=16818).

madars1
28-08-2020, 21:20
Установка невозможна: ваша версия отличается от ..., удалите предыдущую версию powershell!
1. По поиску через unistall tool ничего не выдает. То есть не могу найти установленный powershell.exe
2. Через 'Выполнить' при попытке выполнения powershell.exe - написано: windows не удалось найти powershell.exe ...

Iska
28-08-2020, 21:55
Установка невозможна: ваша версия отличается от ..., удалите предыдущую версию powershell! »
Скриншот хотя бы.

madars1
28-08-2020, 23:03
https://i112.fastpic.ru/thumb/2020/0828/6d/6b4f5f3ee9e52169cd4e08a41ff5516d.jpeg (https://fastpic.ru/view/112/2020/0828/6b4f5f3ee9e52169cd4e08a41ff5516d.jpg.html)

Iska
28-08-2020, 23:13
Попробуйте воспользоваться советами отсюда: Не устанавливается обновление KB968930 на Windows XP (https://social.technet.microsoft.com/Forums/ru-RU/f9e5fe43-88ff-4281-aa04-cd9eafe6cf4b/10531077?forum=xpru).

madars1
28-08-2020, 23:25
Скажите пожалуйста: а есть какие-то другие альтернативные источники для скачивания PowerShell 2.0 и WinRM 2.0?
А то ссылка ниже - мертвая...

http://support.microsoft.com/kb/968929.

ateka
29-08-2020, 01:37
Не проверял. Если не работает пиши подправлю.
Для очистки совести сначала предлагаю использовать расширение для браузера. Идеальный вариант для новичков. https://ru.savefrom.net/7/
Теперь сабж. Предлагаю следующий алгоритм.
Сначала копируешь ютуб ссылку в буфер обмена.
Запускаешь батник. Ждёшь. Проверяешь.
Для чтения буфера обмена я использую https://www.c3scripts.com/tutorials/msdos/paste.html https://www.c3scripts.com/tutorials/msdos/paste.zip
Эту софтинку надо держать рядом с батником или положить в path (C:\Windows\system32)
Так как ты совсем уж новичок то я сделал тебе готовую сборку. Скачай аттач. Распакуй и используй.
Но и код разумеется приложу.
@echo off
>nul chcp 65001
cd /d "%~dp0"
set "YTDLPath=c:\Documents and Settings\verpoks"
set "OutPutPath=l:\bravos\ihbinbine\Biomur"
for /f %%a in ('paste') do set _url=%%a
set "ua=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36 OPR/65.0.3467.78"
title Download %_url%
%YTDLPath%\youtube-dl ^
--user-agent "%ua%" ^
--ignore-errors ^
--continue ^
--fragment-retries infinite ^
--no-playlist ^
--max-filesize 750m ^
--write-sub ^
--convert-subs srt ^
--embed-subs ^
--format "18/bestvideo[height<=360]+bestaudio/best" ^
--sleep-interval 64 ^
--max-sleep-interval 128 ^
--output "%OutPutPath%\%%(title)s_[%%(id)s].%%(ext)s"
timeout /t 42
exit

Elven
29-08-2020, 08:33
то вставить ссылку на ютьюб видео не получается. »
url как параметр »
вставлять куда-то еще не нужно, нужно указывать в качестве параметра. например если батник называется ydl.bat, то нужно открыть cmd и вписать:
ydl.bat "https://youtu.be/pO-OgQHATf4"

Iska
29-08-2020, 08:53
Elven, вот как раз этого этапа и хочется избежать.

Uragan66
29-08-2020, 20:03
madars1, по теме написал простенькую утилиту (скрипт powershell с GUI, скомпилированный в исполняемый файл). Если получится установить powershell, можете попробовать...
Не знаю как будет с версией PS 2.0, но с 5.1 работает нормально.

1. В верхнее поле вставляем ссылку с YouTube.
2. По кнопке Format определяем числовой код нужного формата видео. В некоторых файлах формат не определяется, их не получается и скачать посредством youtube-dll
3. Числовой код формата записываем в поле -f
4. Жмём кнопку Run Script
5. Откроется файл браузер, выбираем папку для сохранения файла. Скачивание начнётся автоматически
6. Процесс скачивания будет отображен в окне утилиты.


Скачать утилиту: https://drive.google.com/file/d/1UAnf2nMpqQz3UC305VrKnJB5gmOXW76N/view?usp=sharing

Iska
29-08-2020, 21:41
Uragan66, быстрее будет:
то нужно открыть cmd и вписать: »

;).

Uragan66
30-08-2020, 07:49
быстрее будет »
Iska, так то быстрее, согласен, но при условии, что видео будет качаться в одну определённую папку... Да и знать код формата не помешает... Как я выше писал, некоторые файлы вообще невозможно скачать через youtube-dll
А вообще, здесь дело в удобстве... кому как сподручнее...




© OSzone.net 2001-2012