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

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

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

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

Maz



Дед Мазай
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Предыдущее обсуждение: часть 1


Текущая версия: 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 Для Windows 7 есть нюанс Или от gyan
  • BAT-ник от DeZz
  • кнопки от notinthewoods
  • BAT-ник, Downloader, расширения от 351878
  • Youtube Format IDs  
  • Автоматическое скачивание комментариев к видеороликам Youtube с их преобразованием в удобный для чтения HTML-формат от PREVED
     
     
     
     
     
     


  • Всего записей: 39015 | Зарегистр. 26-02-2002 | Отправлено: 09:08 17-02-2024 | Исправлено: PREVED, 12:35 24-08-2024
    iNNOKENTIY21



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

    Цитата:
    -o "infojson:блабла"

    Это задаёт имя в yt-dlp. А наружу его не сообщает. Сохранит файл, но работать с ним как? Нужно знать имя, что бы с файлом работать.

    Всего записей: 3601 | Зарегистр. 16-08-2012 | Отправлено: 19:17 17-08-2024
    www_world

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

    Цитата:
    Как бы получить имя сохранённого *.info.json или задать это имя?
    Типа (совместно --write-info-json --print id не работает):

    Код:
    yt-dlp --skip-download --write-info-json --print id --output '%(id)s.%(ext)s' --paths "$Destination" "$Url"

    Добавлено:
    Средствами сабжа, а не шелла, типа парсить вывод, генерировать имя…
    powershell

    Код:
    yt-dlp --skip-download --write-info-json --paths "$Destination" "$Url" | % { $null = $_ -match "^\[info\] Writing video metadata as JSON to:\s(.*?)$" } ; $Matches.1
    $basename = [system.io.path]::GetRandomFileName(); yt-dlp --skip-download --write-info-json --output $basename --paths "$Destination" "$Url"

    Задать имя .info.json, очевидно, можно можно точно также, как и для самого ролика
    Например
    yt-dlp --write-info-json --skip-download https://www.youtube.com/watch?v=xxxxxxxxxxx -o %(title)+.20U
    yt-dlp --write-info-json --skip-download https://www.youtube.com/watch?v=xxxxxxxxxxx -o my_liked_wideo_[%(id)s]
    yt-dlp --write-info-json --skip-download https://www.youtube.com/watch?v=xxxxxxxxxxx -o %date%_%time::=-%
     
    Вообще, хотелось бы на примере понять сверхзадачу, типа, имеем -> получаем -> получаем -> результат.

    Всего записей: 365 | Зарегистр. 04-11-2018 | Отправлено: 19:31 17-08-2024
    greeple

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    iNNOKENTIY21
    Цитата:
    Это задаёт имя в yt-dlp. А наружу его не сообщает. Сохранит файл, но работать с ним как? Нужно знать имя, что бы с файлом работать.

    имя будет такое какое напишешь с расширением .json
    где и как ты работать с ним собрался?

    Всего записей: 4746 | Зарегистр. 11-02-2020 | Отправлено: 19:37 17-08-2024
    iNNOKENTIY21



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    www_world
    Всё написано, уже в 3 предыдущих моих постах.
     
    greeple

    Цитата:
    имя будет такое какое напишешь с расширением .json

    старт.пост по этому вопросу. средствами сабжа. если файл не один уже нужно динамически менять имя — генератор имени.

    Цитата:
    где и как ты работать с ним собрался?

    в скрипте естественно.
    Сейчас использую генератор имени и подаётся в параметр $BaseName  
    PowerShell:
    Код:
    param (
        [Parameter(Mandatory)]
        [uri]
        $Url,
     
        [Parameter(Mandatory)]
        [string]
        $Destination,
     
        [string]
        $BaseName = '%(title)s.%(ext)s',
     
        [string]
        $Format = 'bestvideo[height<=?1080][ext=mp4]+bestaudio[ext=m4a]/best',
     
        [string[]]
        $SubLang = @('en','ru')
    )
     
    $FileInfoJsonPath = [System.IO.Path]::Combine($Destination, $BaseName + '.info.json')
     
    yt-dlp `
        --no-playlist `
        --skip-download `
        --write-info-json `
        --no-clean-info-json `
        --output $BaseName `
        --paths $Destination `
        --format "$Format" `
        "$Url"
     
    $Info = Get-Content -LiteralPath $FileInfoJsonPath | ConvertFrom-Json
    $Info.language

    сделал дело с info.json и продолжил/нет загрузку с ним же

    Код:
    yt-dlp `
        --no-playlist `
        --write-link `
        --embed-metadata `
        --embed-thumbnail `
        --embed-chapters `
        --embed-subs `
        --write-auto-subs `
        --sponsorblock-mark all `
        --load-info-json $FileInfoJsonPath `
        --sub-langs $Subtitles `
        --paths $Destination `
        --output $BaseName `
        -f $Format


    Всего записей: 3601 | Зарегистр. 16-08-2012 | Отправлено: 20:52 17-08-2024
    greeple

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    iNNOKENTIY21
    так у тебя тут же
    $BaseName + '.info.json' будет %(title)s.%(ext)s.info.json, а должно быть без %(ext)s
     
     
     
    если надо выдать название на вывод, то -O "%(title)s [%(id)s].info.json"
    есть ещё поле  %(filename)s оно выдаёт тоже самое название, но mp4, а не .info.json получится тоже самое что ты писал %(title)s.%(ext)s
     
     
     
    Добавлено:
    можно как-то грамотней, но это надо тестить сидеть, и в доки смотреть
     
    Добавлено:
    iNNOKENTIY21
    Цитата:
    сделал дело с info.json и продолжил/нет загрузку с ним же

    логику не особо понял, но это надо пошиком и писать всё. Все эти если да кабы

    Всего записей: 4746 | Зарегистр. 11-02-2020 | Отправлено: 21:37 17-08-2024
    iNNOKENTIY21



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

    Цитата:
    так у тебя тут же
    $BaseName + '.info.json' будет %(title)s.%(ext)s.info.json, а должно быть без %(ext)s

    Нет. В блоке параметров значение по умолчанию, если другое не будет указано в момент вызова, а я указываю рандомное имя.
    В итоге там будет рандомное имя + '.info.json'
     

    Цитата:
    если надо выдать название на вывод, то -O "%(title)s [%(id)s].info.json"
    есть ещё поле  %(filename)s оно выдаёт тоже самое название, но mp4, а не .info.json получится тоже самое что ты писал %(title)s.%(ext)s

    Это тот же --print из первого поста. Не работают вместе эти параметры --write-info-json --print. С чего и возник вопрос.

    Цитата:
    логику не особо понял, но это надо пошиком и писать всё. Все эти если да кабы

    Конечно скриптом. Но инфу то надо брать из json.  А для этого надо имя файла. А с параметром: -O "%(title)s [%(id)s].info.json" — файл info.json не создаётся, но да, имя выводится, только нафиг оно.
     
    Просто хотел избавиться от рандомного имени.

    Всего записей: 3601 | Зарегистр. 16-08-2012 | Отправлено: 22:12 17-08-2024
    greeple

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    iNNOKENTIY21
    Цитата:
    В итоге там будет рандомное имя + '.info.json'

    ну так а название то ты не изменяешь при загрузке -o "infojson:блабла" либо ты меняешь это либо используешь по умолчанию

    Цитата:
    Это тот же --print из первого поста. Не работают вместе эти параметры --write-info-json --print. С чего и возник вопрос.

    работают, просто ты странно это используешь

    Цитата:
    Просто хотел избавиться от рандомного имени.


    Цитата:
    а я указываю рандомное имя.

    так избавится или указываешь рандомное?

    Всего записей: 4746 | Зарегистр. 11-02-2020 | Отправлено: 22:39 17-08-2024
    iNNOKENTIY21



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

    Цитата:
    ну так а название то ты не изменяешь при загрузке -o "infojson:блабла" либо ты меняешь это либо используешь по умолчанию

    Нормально там всё, скрипт рабочий.

    Цитата:
    так избавится или указываешь рандомное?

    Указываю рандомное, но хочу избавится. но сабж не даёт, ибо:

    Цитата:
    работают, просто ты странно это используешь

    Не работают.
    Чего странного? Нормальное желание, что бы команда:

    Код:
    yt-dlp --no-playlist --skip-download --write-info-json --no-clean-info-json -O '%(title)s [%(id)s].info.json' "https://www.youtube.com/watch?v=3givlC2vbCw"

    сохраняла файл json и выводила его имя в консоль, я бы присвоил его переменной…

    Всего записей: 3601 | Зарегистр. 16-08-2012 | Отправлено: 23:40 17-08-2024
    www_world

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    iNNOKENTIY21
    Парсить джейсон можно средствами yt-dlp. Что именно вам нужно из него?

    Всего записей: 365 | Зарегистр. 04-11-2018 | Отправлено: 23:53 17-08-2024
    iNNOKENTIY21



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

    Цитата:
    Парсить джейсон можно средствами yt-dlp. Что именно вам нужно из него?

    Я в курсе. Но мне этого не надо. Полей более 5. title, id, ext, language, codec info, subtitle info…
    Мне нужен файл, данные из него для других утилит/скриптов, и если будет принято решение качать, то передача его имени:

    Код:
    yt-dlp --load-info-json "имя json файла"

    Всего записей: 3601 | Зарегистр. 16-08-2012 | Отправлено: 00:05 18-08-2024
    www_world

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    iNNOKENTIY21
    Одного не могу понять, если у вас уже есть ссылка (video), то зачем вам еще что-то? (в смысле формирования имени json).
    https://www.youtube.com/watch?v=00000000001 -> 00000000001.info.json

    Всего записей: 365 | Зарегистр. 04-11-2018 | Отправлено: 01:00 18-08-2024 | Исправлено: www_world, 01:13 18-08-2024
    greeple

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    iNNOKENTIY21
    Цитата:
    сохраняла файл json и выводила его имя в консоль, я бы присвоил его переменной…

    нельзя одновременно и вывести на консоль и сохранить файл, либо то, либо то
    можно в постпроцессе или в --exec вывести после сохранения  
    iNNOKENTIY21
    Цитата:
    Я в курсе. Но мне этого не надо. Полей более 5. title, id, ext, language, codec info, subtitle info…
    Мне нужен файл, данные из него для других утилит/скриптов, и если будет принято решение качать, то передача его имени:

    так бери сразу json на вывод и из него бери всё что надо  

    Код:
    -j, --dump-json                 Quiet, but print JSON information for each
                                    video. Simulate unless --no-simulate is
                                    used. See "OUTPUT TEMPLATE" for a
                                    description of available keys
    -J, --dump-single-json          Quiet, but print JSON information for each
                                    url or infojson passed. Simulate unless
                                    --no-simulate is used. If the URL refers to
                                    a playlist, the whole playlist information
                                    is dumped in a single line

     
    Добавлено:
    зачем лишний раз писать файл и читать его? если можно сразу в переменную его и распарсить

    Всего записей: 4746 | Зарегистр. 11-02-2020 | Отправлено: 02:05 18-08-2024
    iNNOKENTIY21



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

    Цитата:
    Одного не могу понять, если у вас уже есть ссылка (video), то зачем вам еще что-то? (в смысле формирования имени json).

    Видео требует дальнейшей работы, а какой именно, инфа о видео в json. Лучше заранее узнать о видео инфу, не качая видео.
    Когда запрашивается инфа параметром --write-info-json, грузится и парсится веб страница, всякие апи… время занимает, но гораздо меньше, чем качать видео.
    Скрипт получил инфо и определил качать/не качать и что именно качать, голосовой перевод, конверт его в аас если мп4 и тому подобные условия.
    Если качать, то передаёт json следующей команде уже с --load-info-json, тут уже не грузится и не парсится веб страница, всякие апи… сразу грузится видео, как с паузы сняли предыдущую команду с --write-info-json, десяток сек. только на этом экономится.
    Только json устаревают, наверно прямые ссылки на googlevideo тухнут, хз сколько времени живёт, для скрипта хватает с головой.
     
    greeple
    Ну вот приехали к старт-посту
     
    Файл нужен, что бы возобновить быстро загрузку, не качая веб страницу и не парся её во второй, третий… раз, там ещё и паузы, видимо от бана-блокировки… В общем лучше за один проход.

    Всего записей: 3601 | Зарегистр. 16-08-2012 | Отправлено: 02:08 18-08-2024
    greeple

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    вообще оно вот так сейчас --print "%()j" как тоже самое что и -j
    можно все твои так принтить
    --print "{\"title\": %(title)j,\"id\": %(id)j,\"ext\": %(ext)j,\"language\": %(language)j,\"codec\": %(codec)j,\"info\": %(info)j,\"subtitle info\": %(subtitle info)j}"
    ну или как хочешь, строкой
    --print "%(title)j %(id)j %(ext)j %(language)j %(codec)j %(info)j %(subtitle info)j" разделенные прибелом, или любым символом какой нужен, и в пошике забираешь, они в кавычках, j в кавычках s просто строка без кавычек %()j %()s
     
    Добавлено:
    iNNOKENTIY21
    Цитата:
    Ну вот приехали к старт-посту  
     
    Файл нужен, что бы возобновить быстро загрузку, не качая веб страницу и не парся её во второй, третий… раз, там ещё и паузы, видимо от бана-блокировки… В общем лучше за один проход.

    ну тогда так как выше написал, либо либо, вместе никак
     
    Добавлено:
    ну или иди разрабов спроси на гит, там больше шарят
     
    Добавлено:
    iNNOKENTIY21
    Цитата:
    Это задаёт имя в yt-dlp. А наружу его не сообщает. Сохранит файл, но работать с ним как? Нужно знать имя, что бы с файлом работать.

    так ты пробовал или нет?
    я просто в твой сркипт смотрю и не пойму что тебе надо то?
     

    Код:
    param (
        [Parameter(Mandatory)]
        [uri]
        $Url,
     
        [Parameter(Mandatory)]
        [string]
        $Destination,
     
        [string]
        $BaseName = '%(title)s.%(ext)s',
     
        [string]
        $Format = 'bestvideo[height<=?1080][ext=mp4]+bestaudio[ext=m4a]/best',
     
        [string[]]
        $SubLang = @('en','ru')
    )
     
    $FileInfoJsonPath = [System.IO.Path]::Combine($Destination, $BaseName + '.info.json')
     
    yt-dlp `
        --no-playlist `
        --skip-download `
        --write-info-json `
        --no-clean-info-json `
        --output infojson:$BaseName `
        --paths $Destination `
        --format "$Format" `
        "$Url"
     
    $Info = Get-Content -LiteralPath $FileInfoJsonPath | ConvertFrom-Json
    $Info.language

     
    сюда если его прописать то как раз, с тем с чем ты вызываешь он будет сохранен, и $FileInfoJsonPath у тебя для загрузки будет такой как надо (это если возвращаться к первым твоим сообщениям)

    Всего записей: 4746 | Зарегистр. 11-02-2020 | Отправлено: 02:45 18-08-2024
    www_world

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

    Цитата:
    Видео требует дальнейшей работы, а какой именно, инфа о видео в json. Лучше заранее узнать о видео инфу, не качая видео.

    Ну так у вас же и будет уже скачанный 00000001.json
    Пропарсите пооучите параметры и скачаете видео по потребности. Чего не хватает? Никак в толк не возьму.
    Цитата:
    Только json устаревают, наверно прямые ссылки на googlevideo тухнут, хз сколько времени живёт, для скрипта хватает с головой.  

    Совершенно верно. Поэтому джейсоны даже подряд скаченные часто неидентичные.
    Поэтому никаких прямых ссылок (кроме подсобных типа эскизов) вы оттуда не возьмете. Только стандартные указатели - формат, описание, тип субтмтров и тд.
    Поэтому и не понимаю всей канители.
    Джейсон нейм равен ссылке, парсим джейсон - если устраивает найденное, то качаем с найденными указателями. На мой взгляд все стандартно или вы скрываете некие секретные и непостижимые тайны.
    Я бы понял, если бы задача стояла сделать зеркало ютюба... но для 100-10000 роликов...

    Всего записей: 365 | Зарегистр. 04-11-2018 | Отправлено: 06:35 18-08-2024
    iNNOKENTIY21



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    greeple
    www_world
     
    youtube-dl | yt-dlp (Часть 2) :: Initialize()

    Цитата:
    Средствами сабжа, а не шелла, типа парсить вывод, генерировать имя…

    Цитата:
    совместно --write-info-json --print id не работает

    Цитата:
    Файл нужен, что бы возобновить быстро загрузку, не качая веб страницу и не парся её во второй, третий… раз, там ещё и паузы, видимо от бана-блокировки… В общем лучше за один проход.
     

    Ну сабж не могёт, дак не могёт.

    Всего записей: 3601 | Зарегистр. 16-08-2012 | Отправлено: 16:58 18-08-2024
    www_world

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

    Цитата:
    Ну сабж не могёт, дак не могёт.

    Сабж тут не при чем. Это особенности Youtube.
    И, считаю, правильные особенности, позволяющие обеспечить равномерность доступа к контенту всем юзерам.
    Если бы в этом вопросе политика была иной, то перманентно возникали бы проблемы с роликами - одни невозможно посмотреть в определенные часы, другие - невозможно посмотреть определенной части юзеров (без всяких блокировок и ограничений) и т.д. и т.п. А какое поле возможностей открылось бы для злоумышленников, существуй прямые постоянные ссылки на медиаконтент - вы даже не можете себе представить: практически ютюбом вертели бы как хотели.
    Например, майкрософт не может быть поставлен в пример - совершенно разные: объем контента, цели и задачи. У мс - несколько независимых каналов доставки своего контента, отсутствует острая потребность "в сию секунду", он сам имеет возможность определять - когда, кому и как и тд. То есть, его модель априори неприменима к ютюбу.

    Всего записей: 365 | Зарегистр. 04-11-2018 | Отправлено: 19:16 18-08-2024
    iNNOKENTIY21



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

    Цитата:
    Сабж тут не при чем. Это особенности Youtube.

    Это особенность сабжа. --write-info-json и --print должны отрабатывать совместно в одной команде, Youtube тут ни причём.
     
    Если качать разные дорожки не делая merge, скажем 3 видео, 3 аудио, надо 6 раз качать и делать разбор страницы Youtube: yt-dlp --format1 url; yt-dlp --format2 url и т.д.. Вместо одного раза?. Я сделаю за один раз, но не средствами сабжа. А было бы удобнее сделать с --write-info-json и --print в одной команде.

    Всего записей: 3601 | Зарегистр. 16-08-2012 | Отправлено: 19:36 18-08-2024
    neorumtu

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

    Код:
    --extractor-arg "youtube:player_client=mediaconnect"

    можно скачать видео со звуком?
    Но только:
    - AVC/AAC
    - Все разрешения, но не выше 1080p включительно
    - Качается фрагментами, опция -g выдаёт ссылку на m3u8 playlist (однако, его можно скормить mpv плееру)
     
    Взято отсюда.
    Достоинство в том, что не нужно объединять видео+звук в ffmpeg, а недостаток, что скачивается фрагментами и только один кодек.

    Всего записей: 661 | Зарегистр. 30-08-2023 | Отправлено: 19:44 18-08-2024 | Исправлено: neorumtu, 19:48 18-08-2024
    greeple

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    iNNOKENTIY21
    Цитата:
    должны отрабатывать совместно в одной команде

    с чего ты это взял? принт это принт, а запись в файл это запись в файл
    я же тебе сказал иди разрабам напиши и спроси как сделать
     
    Добавлено:

    Цитата:
    yt-dlp --format1 url; yt-dlp --format2 url и т.д.. Вместо одного раза?

    зачем если есть запятые?
    yt-dlp -f format1, format2 url
     
    Добавлено:
    neorumtu
    они там ещё для 18+ видосов https://github.com/yt-dlp/yt-dlp?tab=readme-ov-file#extractor-arguments
     and tv_embedded, web_creator and mediaconnect are added as required for age-gated videos
     
     
    Добавлено:
    neorumtu
    какие форматы то? девяносто какие-то? это у стримов были такие в hls, они да целиковые всегда были
    это yt-dlp их так выдаёт теперь, в предыдущих версиях и в youtube-dl они есть
    видимо для обычных видосов эти ссылки были всегда для каких то устройств и в yt-dlp их не было добавлено, теперь вот есть ( этого mediaconnect до недавнего времени вроде не было в экстаркторах, я помню там только твэмбедед был для 18+)
     
    Добавлено:
    ну да 3 месяца назад https://github.com/yt-dlp/yt-dlp/pull/9546
    а ещё тут https://github.com/yt-dlp/yt-dlp/commits/master/yt_dlp/extractor/youtube.py видно как часто меняется дефолтные player clients

    Всего записей: 4746 | Зарегистр. 11-02-2020 | Отправлено: 20:29 18-08-2024
    Открыть новую тему     Написать ответ в эту тему

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

    Компьютерный форум Ru.Board » Компьютеры » Программы » 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