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 | Всего записей: 6310 | Зарегистр. 11-02-2020 | Отправлено: 16:53 05-03-2025 | Исправлено: greeple, 18:30 05-03-2025 |
|