| | greeple 
 Gold Member
 | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору ndch
 Цитата:
 | Существует какая-либо GUI для yt-dlp которая мониторит в клипборд и автоматом начинает скачивание? | 
 на вот проектик на C# с чатом ГПТ накидали (название такое потому что сначала для ютуба делал, а потом расширял и решил не переименовывать) ClipboardYouTubeDownloader.7z
 запускаешь (он в папке ClipboardYouTubeDownloader\bin\Release), он запускается в трей, есть только кнопка выход, мониторит буфер, как появляется ссылка на YouTube,Vimeo,Soundcloud,Rutube,Vk,vkvideo,Ok,Twitch,Plvideo,Smotrim (vk он объединил с vkvideo, хотя можно было не объединять)
 
 Код:
 | private const string YouTubeRegexPattern = @"(?:https?:\/\/)?(?:www\.)?(?:youtube\.com\/watch\?v=|youtu\.be\/)([a-zA-Z0-9_-]+)"; private const string VimeoRegexPattern = @"(?:https?:\/\/)?(?:www\.)?vimeo\.com\/(\d+)";
 private const string SoundcloudRegexPattern = @"(?:https?:\/\/)?(?:api\.)?soundcloud\.com\/.*";
 private const string RutubeRegexPattern = @"(?:https?:\/\/)?(?:www\.)?rutube\.ru\/(?:video|play\/embed|shorts)\/([a-zA-Z0-9]+)\/?";
 private const string VkRegexPattern = @"(?:https?:\/\/)?(?:www\.)?(?:vk\.com\/(?:video(?:-?\d+_\d+)|story(?:-?\d+_\d+))|vkvideo\.ru\/(?:video(?:-?\d+_\d+)|@(?:[a-zA-Z0-9._-]+)\?z=clip(?:-?\d+_\d+)%2F(?:club\d+))|live\.vkvideo\.ru\/(?:[a-zA-Z0-9._-]+)\/?(?:record\/[a-f0-9-]+)?|(?:vk\.com\/)video_ext\.php\?oid=(?:-\d+)&id=(?:\d+)|(?:vkvideo\.ru\/)video_ext\.php\?oid=(?:-\d+)&id=(?:\d+))";
 private const string OkRegexPattern = @"(?:https?:\/\/)?(?:www\.)?ok\.ru\/(?:video\/(?:\d+)|videoembed\/(?:\d+)|live\/(?:\d+))";
 private const string TwitchRegexPattern = @"(?:https?:\/\/)?(?:www\.)?(?:twitch\.tv\/(?:[a-zA-Z0-9_]+)|player\.twitch\.tv\/\?channel=(?:[a-zA-Z0-9_]+)&parent=twitch\.tv&player=embed|(?:www\.)?twitch\.tv\/videos\/(?:\d+)|player\.twitch\.tv\/\?parent=twitch\.tv&player=embed&video=(?:\d+))";
 private const string PlvideoRegexPattern = @"(?:https?:\/\/)?plvideo\.ru\/watch\?v=([a-zA-Z0-9]+)";
 private const string SmotrimRegexPattern = @"(?:https?:\/\/)?(?:www\.)?smotrim\.ru\/(?:video\/(?:\d+)|channel\/(?:\d+)|live\/(?:\d+)|player\.smotrim\.ru\/iframe\/(?:video|live)\/id\/(?:\d+))";
 
 | 
 тут вот ещё чат в конце добавил Подробнее... это я уже не стал добавлять смотреть про vk, работает вроде и так (только клипы не качает, но это уже сам yt-dlp, вк ему badbrowser страницу даёт)
 Если нужны свои настройки, то исходники там в папке. В файле Form1.cs в блоке DownloadVideo
 
 Код:
 | private void DownloadVideo(string url, string site) {
 // Укажите путь к yt-dlp.exe
 string ytDlpPath = "yt-dlp.exe"; // Или полный путь, например, "C:\\yt-dlp\\yt-dlp.exe"
 
 // Аргументы для yt-dlp (настройте по своему вкусу)
 string arguments = $"-f bestvideo+bestaudio -o \"%(title)s.%(ext)s\" \"{url}\"";
 // Специальные аргументы для некоторых сайтов (настраивайте по необходимости)
 switch (site)
 {
 case "soundcloud":
 arguments = $"-o \"%(title)s.%(ext)s\" \"{url}\""; //Soundcloud url
 break;
 case "twitch":
 arguments = $"-o \"%(title)s.%(ext)s\" \"{url}\""; //Twitch url
 break;
 // Добавьте case для каждого сайта, требующего специальные аргументы
 }
 | 
 тут свои настройки добавляешь если надо (хотя можно просто рядом с yt-dlp.exe положить yt-dlp.conf)
 В этом же файле вверху паттерны регулярных выражений для ссылок, так же можно дальше расширять (но дальше в коде надо будет под них создавать функции вызова которые будут говорить что ссылка есть в буфере)
 После запуска yt-dlp идёт скачивание в папку с этой программой, рядом с ClipboardYouTubeDownloader.exe. Если надо поменять, то там же в блоке DownloadVideo или в yt-dlp.conf. После скачивания или если ошибка, покажет стандартное уведомление. Если ошибка, то может ещё раз запустить попробовать скачать (я в код не смотрел, но пару раз такое было только что, была ошибка сначала и через пару таких ошибок он скачал файл)
 После работы просто в трее правой кнопкой на иконке и Exit
 |  | Всего записей: 7743 | Зарегистр. 11-02-2020 | Отправлено:  16:53 05-03-2025  | Исправлено: greeple,   18:30 05-03-2025
 | 
 |