Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Вставка URL в youtube-dl из буфера обмена в XP (http://forum.oszone.net/showthread.php?t=346274)

madars1 28-08-2020 00:13 2932263

Вставка URL в youtube-dl из буфера обмена в XP
 
Вложений: 1
Есть консольная программа 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 2932265

Такой возможности в пакетных файлах нет.

Как я понимаю, всё это вот:
Цитата:

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

исключительно для того, чтобы вставить за командой url для загрузки из буфера обмена и нажать Enter. Так?

madars1 28-08-2020 15:17 2932286

Совершенно верно))
Цитата:

исключительно для того, чтобы вставить за командой url для загрузки из буфера обмена и нажать Enter.

Elven 28-08-2020 17:03 2932299

не проще будет нарисовать батник с этой командой, который будет принимать 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 2932304

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

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

Цитата:

Цитата Elven
да и зачем вообще что-то скачивать с тытруба? »

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

madars1 28-08-2020 20:03 2932311

Цитата:

Цитата Elven
чтобы запускать его из откуда угодно можно запихнуть в %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)
Батник запускается, но исчезает, если же не исчезает - то вставить ссылку на ютьюб видео не получается.

=====

Цитата:

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

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

Fors1k 28-08-2020 20:26 2932313

Цитата:

Цитата madars1
Мне скачать PowerShell и установить его »

Win+R
Код:

powershell -noexit -command $host|select version
Если будет ниже чем 5.1, то сюда https://www.microsoft.com/en-us/down....aspx?id=54616

madars1 28-08-2020 20:43 2932314

Виндовс не удалось найти 'powershell'...
Может это будет важно - у меня win xp sp3

Iska 28-08-2020 20:54 2932316

Цитата:

Цитата madars1
Дальше нужен скрипт? »

Ну, например:
Скрытый текст
Код:

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), если Вы ещё не сделали этого ранее.

Цитата:

Цитата madars1
Может это будет важно - у меня win xp sp3 »

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

Ссылка, вроде как, эта: Download Обновление для Windows XP (KB968930) from Official Microsoft Download Center.

madars1 28-08-2020 21:20 2932320

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

Iska 28-08-2020 21:55 2932323

Цитата:

Цитата madars1
Установка невозможна: ваша версия отличается от ..., удалите предыдущую версию powershell! »

Скриншот хотя бы.

madars1 28-08-2020 23:03 2932332

Вложений: 1

Iska 28-08-2020 23:13 2932334

Попробуйте воспользоваться советами отсюда: Не устанавливается обновление KB968930 на Windows XP.

madars1 28-08-2020 23:25 2932336

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

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

ateka 29-08-2020 01:37 2932344

Вложений: 1
Не проверял. Если не работает пиши подправлю.
Для очистки совести сначала предлагаю использовать расширение для браузера. Идеальный вариант для новичков. 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 2932347

Цитата:

Цитата madars1
то вставить ссылку на ютьюб видео не получается. »

Цитата:

Цитата Elven
url как параметр »

вставлять куда-то еще не нужно, нужно указывать в качестве параметра. например если батник называется ydl.bat, то нужно открыть cmd и вписать:
Код:

ydl.bat "https://youtu.be/pO-OgQHATf4"

Iska 29-08-2020 08:53 2932349

Elven, вот как раз этого этапа и хочется избежать.

Uragan66 29-08-2020 20:03 2932412

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/1UAn...ew?usp=sharing

Iska 29-08-2020 21:41 2932420

Uragan66, быстрее будет:
Цитата:

Цитата Elven
то нужно открыть cmd и вписать: »


;).

Uragan66 30-08-2020 07:49 2932442

Цитата:

Цитата Iska
быстрее будет »

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

Iska 30-08-2020 14:37 2932468

Цитата:

Цитата Uragan66
кому как сподручнее... »

Это да.
Мне — так:
Код:

--
-- YouTube download
--
local sProgramm = mf.env('ProgramFiles(x86)') .. '\\youtube-dl\\youtube-dl.exe'
local sUrl = mf.trim(mf.clip(0))

if mf.fexist(sProgramm) then
        if mf.len(sUrl) > 0 then
                if mf.substr(sUrl, 0, mf.len('http://')) == 'http://' or mf.substr(sUrl, 0, mf.len('https://')) == 'https://' then
                        local sCommandLine = '"' .. sProgramm .. '" "' .. sUrl .. '"'

                        Keys("CtrlY")
                        print('title Video download from [' .. sUrl .. '] & ' .. sCommandLine .. ' & pause')
                        Keys("ShiftEnter")
                else
                        mf.msgbox('Буфер обмена содержит не ссылку', '\nВозможно, содержимое буфера обмена\n\n[' .. sUrl .. ']\n\nне является http-ссылкой\n\n', 0x00010000)
                end
        else
                mf.msgbox('Пустой буфер обмена', '\nПустой буфер обмена\n\n', 0x00010000)
        end
else
        mf.msgbox('Не удаётся найти исполняемый файл', '\n' .. sProgramm .. '\n\n', 0x00010001)
end


madars1 31-08-2020 02:48 2932521

Цитата:

Цитата ateka
"ua=Mozilla/5.0 (Windows NT 10.0; Win64; x64 »

Не заработал скрипт...

Мой юзерагент
Цитата:

Mozilla/5.0 (Windows NT 5.1; rv:48.0) Gecko/20100101 Firefox/48.0
Действовал так: распаковал paste.exe по пути c:\WINDOWS\SYSTEM32\
рядом кинул батник.

1. копирую из браузера ссылку.
2. запускаю батник двойным кликом мыши. Батник запускается и исчезает. Далее - Ничего не происходит.

Iska 31-08-2020 05:16 2932523

Цитата:

Цитата madars1
Не заработал скрипт... »

Ну, дык… Было бы странно, если бы он заработал :), поскольку там есть как минимум две существенные ошибки.

Попробуйте так:
Скрытый текст
Код:

@echo off
setlocal enableextensions enabledelayedexpansion

for /f "usebackq delims=" %%i in (`paste.exe`) do set sUrl=%%~i

if defined sUrl (
        title Downloading [%sUrl%]
        "c:\Documents and Settings\verpoks\youtube-dl.exe" -f 18 -o "l:\bravos\ihbinbine\Biomur\%%(title)s-%%(id)s.%%(ext)s" "%sUrl%"
        title Download [%sUrl%] complete.
        echo.
        pause
)

endlocal
exit /b 0


Требуется наличие того же «paste.exe» в PATH или в текущем каталоге.

Vadikan 31-08-2020 09:47 2932531

Вставка из буфера обмена элементарно решается в PowerShell 5+ в одну строку: Как скачать видео с YouTube с помощью youtube-dl и PowerShell
Но судя по c:\Documents and Settings, ТС сидит на XP, поэтому ссылка выше просто для информации. Тема переименована в соответствии с задачей.

Elven 31-08-2020 09:55 2932532

Цитата:

Цитата Vadikan
ТС сидит на XP »

Там еще раньше и скриншот был подтверждающий это.

Цитата:

Цитата Iska
вот как раз этого этапа и хочется избежать. »

Тогда брать за жабры тот же vbs и на нем открывать cmd и вписывать эту строку.
Но тут уж я извините этого делать не буду, не люблю vbs.

ateka 31-08-2020 14:37 2932552

Цитата:

Цитата madars1
Батник запускается и исчезает »

Это странно. Он не должен сразу закрываться.
Во первых попробуй взять решение Iska. Он спец у него должно работать.
Но если хочешь попробуй мою вторую версию скрипта: https://www.upload.ee/files/12218966...ne_v2.zip.html
Для простоты я положил всё рядом и качать оно будет в свою папку.
Пока надо понять почему оно закрывается.
Проверить опять не могу у меня HTTP Error 429: Too Many Requests. Ютуб забанил.

Цитата:

Цитата Iska
как минимум две существенные ошибки »

Укажи пожалуйста на ошибки.
Одна вроде что я урл в код забыл добавить. А ещё?

Iska 31-08-2020 20:25 2932591

Цитата:

Цитата ateka
Одна вроде что я урл в код забыл добавить. »

Угу. Содержимое буфера обмена как бы помещается в переменную, а вот дальше она не используется. Забыли? Бывает.

Цитата:

Цитата ateka
А ещё? »

Пробелы могут быть в пути к приложению (и по факту они тут есть — «set "YTDLPath=c:\Documents and Settings\verpoks"»), а дальше нет кавычек в «%YTDLPath%\youtube-dl …».

madars1 31-08-2020 20:59 2932593

Спасибо большое ateka и Iska. Атека спасибо за первый ход, а Иска за то, что заставил этот ход работать у меня))

ateka 01-09-2020 10:00 2932618

Цитата:

Цитата Iska
а дальше нет кавычек »

Хех. Точно. Проявил невнимательность. Спасибо.


Время: 04:59.

Время: 04:59.
© OSzone.net 2001-