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

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

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

Maz (17-02-2024 09:09): youtube-dl | yt-dlp (Часть 2)  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203

   

jasonliull



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

Текущая версия: 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
  • BAT-ник от DeZz
  • кнопки от notinthewoods
  • BAT-ник, Downloader, расширения от 351878
  • Youtube Format IDs  
     


  • Всего записей: 2532 | Зарегистр. 05-08-2012 | Отправлено: 13:44 05-03-2018 | Исправлено: Maz, 09:07 17-02-2024
    aleksvolgin

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

    Цитата:
    Приведенная выше команда загрузит данное видео с Youtube с помощью скрипта yt-dlp, а затем обрежет его, начиная с 1 минуты и заканчивая 2 минутами.

    Нет, конечно. ffmpeg домотает видео до ближайшего ключевого кадра ориетируясь на тайминг начала фрагмента - 00:01:00.00, затем начнёт писать поток на диск закончив запись на ключевом кадре, ближайшим к таймингу 00:02:00.00.

    Всего записей: 1601 | Зарегистр. 19-02-2006 | Отправлено: 18:11 26-09-2022
    greeple

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    aleksvolgin
    а если вот так
    Код:
    --force-keyframes-at-cuts


    Цитата:
    Видеофайлы нельзя обрезать по точным временным меткам без перекодирования. yt-dlp по умолчанию не перекодирует видео, даже если требуется обрезка. Вы можете использовать --force-keyframes-at-cutsдля принудительного перекодирования; однако этот процесс идет медленно — от этого никуда не деться

    faq

    Всего записей: 4188 | Зарегистр. 11-02-2020 | Отправлено: 20:01 26-09-2022
    aleksvolgin

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

    Цитата:
    а если вот так

    А что вы хотите от меня услышать? Все исчерпывающе объяснено в приведёном вами фрагменте faq. Смущает разве что фраза "yt-dlp does not re-encode the video by default". yt-dlp это вообще-то пачка питоновских скриптов, иногда упакованная в экзешник (в виндовом варианте), а манипуляциями с видео занимается ffmpeg, для работы которого yt-dlp формирует необходимую командную строку.

    Всего записей: 1601 | Зарегистр. 19-02-2006 | Отправлено: 20:48 26-09-2022
    greeple

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    aleksvolgin
    не совсем так, если надо кодировать то да, а если не надо, если надо просто скачать с того же ютуба что то одно (один пункт из листа форматов) из вариантов он скачает и без ffmpeg и сохранит так как и должно быть, и с других сайтов тоже, "набор скриптов" может все куски видео соединить в файл если не надо перекодировать

    Всего записей: 4188 | Зарегистр. 11-02-2020 | Отправлено: 22:28 26-09-2022 | Исправлено: greeple, 23:42 26-09-2022
    aleksvolgin

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

    Цитата:
    если надо кодировать то да, а если не надо, если надо просто скачать с того же ютуба что то одно (один пункт из листа форматов) из вариантов он скачает и без ffmpeg и сохранит так как и должно быть

    Нет, конечно. =^.^=

    Всего записей: 1601 | Зарегистр. 19-02-2006 | Отправлено: 10:15 27-09-2022
    greeple

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

    Цитата:
    Нет, конечно.

    что нет то? вот только что скачал без ffmpeg, специально переименовал их
    это скачалось без, просто самый лучший файл объединенный видео со звуком  
    Width                       : 1 280 pixels
    Height                      : 640 pixels

    Код:
    C:\Windows\system32>yt-dlp.exe https://www.youtube.com/watch?v=a1TPQSW0GoM
    [youtube] a1TPQSW0GoM: Downloading webpage
    [youtube] a1TPQSW0GoM: Downloading android player API JSON
    [info] a1TPQSW0GoM: Downloading 1 format(s): 22
    [download] Destination: Untitled Game (The Bird That Drinks Tears) - Official Co
    ncept Trailer [a1TPQSW0GoM].mp4
    [download] 100% of 19.27MiB in 00:07

    а это вот скачалось с ffmpeg  
    Width                       : 2 560 pixels
    Height                      : 1 280 pixels

    Код:
     
    C:\Windows\system32>yt-dlp.exe https://www.youtube.com/watch?v=a1TPQSW0GoM
    [youtube] a1TPQSW0GoM: Downloading webpage
    [youtube] a1TPQSW0GoM: Downloading android player API JSON
    [info] a1TPQSW0GoM: Downloading 1 format(s): 271+251
    [download] Destination: Untitled Game (The Bird That Drinks Tears) - Official Co
    ncept Trailer [a1TPQSW0GoM].f271.webm
    [download] 100% of 68.16MiB in 00:27
    [download] Destination: Untitled Game (The Bird That Drinks Tears) - Official Co
    ncept Trailer [a1TPQSW0GoM].f251.webm
    [download] 100% of 2.31MiB in 00:00
    [Merger] Merging formats into "Untitled Game (The Bird That Drinks Tears) - Offi
    cial Concept Trailer [a1TPQSW0GoM].webm"
    Deleting original file Untitled Game (The Bird That Drinks Tears) - Official Con
    cept Trailer [a1TPQSW0GoM].f251.webm (pass -k to keep)
    Deleting original file Untitled Game (The Bird That Drinks Tears) - Official Con
    cept Trailer [a1TPQSW0GoM].f271.webm (pass -k to keep)
     

    а это вот без ffmpeg, но отдельно один файл из листа форматов

    Код:
    C:\Users\QZMTCH>yt-dlp.exe -f 271 https://www.youtube.com/watch?v=a1TPQSW0GoM
    [youtube] a1TPQSW0GoM: Downloading webpage
    [youtube] a1TPQSW0GoM: Downloading android player API JSON
    [info] a1TPQSW0GoM: Downloading 1 format(s): 271
    [download] Destination: Untitled Game (The Bird That Drinks Tears) - Official Concept Trailer [a1TPQSW0GoM].webm
    [download] 100% of 68.16MiB in 00:26

     
    как видите без ffmpeg качает файлы если не надо их перекодировать
    вам надо было резать не по ключевым кадрам, вот ключ --force-keyframes-at-cuts, режет не смотря на ключевые кадры по таймингам, а вы про "набор скриптов"

    Всего записей: 4188 | Зарегистр. 11-02-2020 | Отправлено: 00:37 28-09-2022 | Исправлено: greeple, 01:04 28-09-2022
    aleksvolgin

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

    Цитата:
    что нет то?

    У вас проблема с когнитивными способностями? Я веду речь про онлайн (без локального сохранения всего файла) "вырезания" части видеофайла и утверждаю, что сделать без ffmpeg'а это невозможно.

    Всего записей: 1601 | Зарегистр. 19-02-2006 | Отправлено: 10:29 28-09-2022
    jasonliull



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
     
    Stacher
    https://stacher.io/

    Всего записей: 2532 | Зарегистр. 05-08-2012 | Отправлено: 16:11 02-10-2022
    forforapreder

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Может кто-нибудь применить этот патч к yt-dlp.exe для tv5monde?
    На оф. форуме посоветовали, но сам не смогу.
     
    This is a patch for yt-dlp (though urllib.parse might be preferred to the compat module):
     
    --- old/yt_dlp/extractor/tv5mondeplus.py
    +++ new/yt_dlp/extractor/tv5mondeplus.py
    @@ -1,8 +1,10 @@
     from .common import InfoExtractor
    +from ..compat import compat_urllib_parse
     from ..utils import (
         determine_ext,
         extract_attributes,
         int_or_none,
    +    mimetype2ext,
         parse_duration,
         try_get,
     )
    @@ -63,20 +65,34 @@
             video_files = self._parse_json(
                 vpl_data['data-broadcast'], display_id)
             formats = []
    -        for video_file in video_files:
    -            v_url = video_file.get('url')
    -            if not v_url:
    -                continue
    -            video_format = video_file.get('format') or determine_ext(v_url)
    -            if video_format == 'm3u8':
    -                formats.extend(self._extract_m3u8_formats(
    -                    v_url, display_id, 'mp4', 'm3u8_native',
    -                    m3u8_id='hls', fatal=False))
    -            else:
    -                formats.append({
    -                    'url': v_url,
    -                    'format_id': video_format,
    -                })
    +
    +        def process_video_files(v):
    +            for video_file in v:
    +                v_url = video_file.get('url')
    +                if not v_url:
    +                    continue
    +                if video_file.get('type') == 'application/deferred':
    +                    video_file = self._download_json(
    +                        'https://api.tv5monde.com/player/asset/%s/resolve' % (compat_urllib_parse.quote(v_url), ),
    +                        display_id, note='Downloading asset metadata', fatal=False) or []
    +                    process_video_files(video_file)
    +                    continue
    +                video_format = video_file.get('format') or mimetype2ext(video_file.get('type')) or determine_ext(v_url)
    +                if video_format == 'm3u8':
    +                    formats.extend(self._extract_m3u8_formats(
    +                        v_url, display_id, 'mp4', 'm3u8_native',
    +                        m3u8_id='hls', fatal=False))
    +                elif video_format == 'mpd':
    +                    formats.extend(self._extract_mpd_formats(
    +                        v_url, display_id, fatal=False))
    +                else:
    +                    formats.append({
    +                        'url': v_url,
    +                        'format_id': video_format,
    +                    })
    +
    +        process_video_files(video_files)
    +
             self._sort_formats(formats)
     
             metadata = self._parse_json(

    Всего записей: 14 | Зарегистр. 03-09-2019 | Отправлено: 21:22 07-10-2022
    LZAA

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
      Откройте файл 'tv5mondeplus.py' в текстовом редакторе.
       Текст напротив '+' добавьте, напротив '-' удалите.
       '+' без текста означает 'новая строка'.
        Отступы должны быть соблюдены.

    Всего записей: 2212 | Зарегистр. 09-01-2010 | Отправлено: 00:25 09-10-2022 | Исправлено: LZAA, 00:26 09-10-2022
    forforapreder

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Я использую файл yt-dlp.exe. Поэтому и просил помочь внести изменения в него.

    Всего записей: 14 | Зарегистр. 03-09-2019 | Отправлено: 10:14 09-10-2022
    LZAA

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
        Есть такое затруднение.
      Если мы используем аргумент '-a' для пакетного скачивания, и при этом используем список состоящий из URLs 'm3u8', то youtube-dl сохраняется первый файл из списка с неким названием, но у следующего файла название совпадает с названием первого. Это приводит к тому, что перзаписывается первый сохранённый файл или система пишет, что файл с таким названием уже имеется. То, что названия идентичные - это терпимо, но надо как-то активировать 'автонумерацию' таких файлов. Есть такое:
     
    --autonumber-start NUMBER Specify the start value for
    %(autonumber)s (default is 1)
     
      Я это так понимаю. что в 'youtube-dl' некая 'autonumber' предусмотрена. Но как это написать в команде 'cmd'? Например, будет ли такое работать:
     
    youtube-dl -a urls.txt --autonumber-start 1
     
      ? Или можно проще сделать?

    Всего записей: 2212 | Зарегистр. 09-01-2010 | Отправлено: 00:19 10-10-2022
    ARoma



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    LZAA
    я вот так добавляю автонумерацию
     
    # Сохранять видео в папку Downloads по шаблону "название плейлиста\номер. название.расширение"
    # -o "D:\DOWNLOADS\%(playlist_title)s\%(autonumber)03d. %(title)s.%(ext)s"
     
    03d = трёхзначная нумерация, т.е. 001/002/003/.../099/999/.
     
    Подробнее тут: https://github.com/yt-dlp/yt-dlp#output-template

    Всего записей: 674 | Зарегистр. 13-06-2019 | Отправлено: 10:22 10-10-2022
    LZAA

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
        Можно ли изменить код таким образом, чтобы директория не указывалась?

    Всего записей: 2212 | Зарегистр. 09-01-2010 | Отправлено: 19:53 10-10-2022
    ARoma



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    LZAA
    Можно. Уберите путь и сохраняться будет по умолчанию - в папку откуда запускался yt-dlp/youtube-dl
     
    # Сохранять по шаблону "номер. название.расширение"
    -o "%(autonumber)03d. %(title)s.%(ext)s"
     

    Всего записей: 674 | Зарегистр. 13-06-2019 | Отправлено: 20:14 10-10-2022 | Исправлено: ARoma, 20:15 10-10-2022
    greeple

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

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

    не совсем понял, но если имеется ввиду чтобы всегда скачивалось туда откуда вызывается скачка то просто убираешь директорию оставляя только имя вывода и все, по другому не знаю может еще как то можно, вот так вот получается
     

    Код:
    yt-dlp -a urls.txt -o "%(autonumber)03d. %(title)s.%(ext)s"

    Всего записей: 4188 | Зарегистр. 11-02-2020 | Отправлено: 20:27 10-10-2022
    yasha_sokolov

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вопрос как сохранить с датой 7 окт. 2022 г, что добавить ?
    Имею код:
    yt-dlp -o "D:\Video\%(title)s-%(id)s.%(ext)s"  https://www.youtube.com/watch?v=АААААААА
    получаю:
    D:\Video\Имя_файла-АААААААА.mp4
    а как получить:
    D:\Video\2022.10.07_Имя_файла-АААААААА.mp4
    Благодарю за помощь.

    Всего записей: 40 | Зарегистр. 04-06-2018 | Отправлено: 22:00 10-10-2022
    vek3262



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    yasha_sokolov
    yt-dlp -o "D:\Video\%(upload_date>%Y.%m.%d)s_%(title)s-%(id)s.%(ext)s"  https://www.youtube.com/watch?v=АААААААА

    Всего записей: 5422 | Зарегистр. 02-09-2012 | Отправлено: 22:33 10-10-2022
    ARoma



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    yasha_sokolov
    Если нужно добавить конкретную дату, то прописываете её так
    -o "D:\Video\2022.10.07_%(title)s-%(id)s.%(ext)s"
     
    yt-dlp позволяет получить ещё 3 варианта даты:
     
    upload_date = дата загрузки видео, по умолчанию в формате ГГГГММДД
    -o "D:\Video\%(upload_date)s_%(title)s-%(id)s.%(ext)s"
     
    release_date = дата релиза видео, по умолчанию в формате ГГГГММДД
    -o "D:\Video\%(release_date)s_%(title)s-%(id)s.%(ext)s"
     
    modified_date = дата последнего изменения видео, по умолчанию в формате ГГГГММДД
    -o "D:\Video\%(modified_date)s_%(title)s-%(id)s.%(ext)s"
     
    Если же нужна, дата скачивания, то возможно тут питонисты помогут с синтаксисом.
     
    Добавлено:
    vek3262, сделал дату в точности как в вашем примере, т.е. с разделителем точкой ГГГГ.ММ.ДД
     
    yasha_sokolov
    Цитата:
    Все бы примеры в шапку темы, чтоб вопросы не повторялись.

    Чтобы вопросов не появлялось вовсе, нужно читать довольно подробный README.md в котором все эти примеры расписаны с пояснениями.

    Всего записей: 674 | Зарегистр. 13-06-2019 | Отправлено: 22:55 10-10-2022 | Исправлено: ARoma, 23:05 10-10-2022
    yasha_sokolov

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vek3262
    ARoma
     
    Благодарю за помощь. Все бы примеры в шапку темы, чтоб вопросы не повторялись.

    Всего записей: 40 | Зарегистр. 04-06-2018 | Отправлено: 22:56 10-10-2022 | Исправлено: yasha_sokolov, 22:58 10-10-2022
       

    Страницы: 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 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203

    Компьютерный форум Ru.Board » Компьютеры » Программы » youtube-dl | yt-dlp (Часть 1)
    Maz (17-02-2024 09:09): 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