Repository navigation
Remove Bare distribution; auto-download FFmpeg at run time - #800
Conversation
… auto-download FFmpeg, remove Bare distribution Agent-Logs-Url: https://github.com/Tyrrrz/YoutubeDownloader/sessions/56ac88b4-7d60-4d66-87c5-fbbfdacfb0b9 Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com>
Agent-Logs-Url: https://github.com/Tyrrrz/YoutubeDownloader/sessions/56ac88b4-7d60-4d66-87c5-fbbfdacfb0b9 Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com>
…t, and related references Agent-Logs-Url: https://github.com/Tyrrrz/YoutubeDownloader/sessions/47fed8dd-c5b8-4786-a3f5-6d1ab4a9105a Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com>
|
Just as a heads up, I was blocked by some firewall rules while working on your feedback. Expand below for details. Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
|
@copilot actually, we can probably move the FFmpeg downloading stuff to the dashbaord and use its progress bar to display progress, no need for an extra dialog. Let's do that and revert all the dialog-related renamings. |
…sArchitecture, and bump version to 8.1.0 Agent-Logs-Url: https://github.com/Tyrrrz/YoutubeDownloader/sessions/15c889b0-48a7-4d1d-9485-e15cf802988e Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com>
|
Just as a heads up, I was blocked by some firewall rules while working on your feedback. Expand below for details. Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
…th user prompt Agent-Logs-Url: https://github.com/Tyrrrz/YoutubeDownloader/sessions/9c85dac1-736c-4995-b514-7518260663b0 Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com>
Done in 37ad795. All dialog-related renames have been reverted (the Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
…izeCommand on dashboard Agent-Logs-Url: https://github.com/Tyrrrz/YoutubeDownloader/sessions/066c2f76-008c-4774-9d9e-bbb017026d32 Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com>
|
Just as a heads up, I was blocked by some firewall rules while working on your feedback. Expand below for details. Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
There was a problem hiding this comment.
Pull request overview
This PR removes the “Bare” (non-bundled FFmpeg) distribution and shifts FFmpeg acquisition from build-time bundling to a runtime auto-download flow that’s surfaced through the dashboard’s existing busy/progress UI.
Changes:
- Removed build-time FFmpeg download/copy logic from the app project and CI pipeline.
- Added a runtime
FFmpeg.DownloadAsync(...)helper in Core and a dashboard initialization command that prompts and downloads when FFmpeg is missing. - Updated localizations to remove Bare-related messaging and add a “Downloading FFmpeg…” snackbar title.
Reviewed changes
Copilot reviewed 13 out of 13 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| YoutubeDownloader/YoutubeDownloader.csproj | Removes build-time FFmpeg download target and output-copy items. |
| YoutubeDownloader/Views/Components/DashboardView.axaml.cs | Triggers dashboard initialization on load (to drive FFmpeg ensure/download). |
| YoutubeDownloader/ViewModels/MainViewModel.cs | Removes startup FFmpeg-missing handling from the main initialization path. |
| YoutubeDownloader/ViewModels/Components/DashboardViewModel.cs | Adds InitializeCommand and runtime FFmpeg ensure/download with UI feedback. |
| YoutubeDownloader.Core/Downloading/FFmpeg.cs | Adds runtime download + platform/arch URL selection and Unix executable bit setting. |
| YoutubeDownloader/Localization/LocalizationManager.cs | Adds FFmpegDownloadingTitle and removes searched-path label accessor. |
| YoutubeDownloader/Localization/LocalizationManager.English.cs | Updates FFmpeg-missing prompt and adds downloading title. |
| YoutubeDownloader/Localization/LocalizationManager.French.cs | Updates FFmpeg-missing prompt and adds downloading title. |
| YoutubeDownloader/Localization/LocalizationManager.German.cs | Updates FFmpeg-missing prompt and adds downloading title. |
| YoutubeDownloader/Localization/LocalizationManager.Spanish.cs | Updates FFmpeg-missing prompt and adds downloading title. |
| YoutubeDownloader/Localization/LocalizationManager.Ukrainian.cs | Updates FFmpeg-missing prompt and adds downloading title. |
| YoutubeDownloader/DownloadFFmpeg.csx | Removes the build-time FFmpeg download script entirely. |
| .github/workflows/main.yml | Removes Bare/bundled matrix dimension and standardizes artifacts to YoutubeDownloader.<rid>. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
@copilot fix the update service too |
…p unused localization strings Agent-Logs-Url: https://github.com/Tyrrrz/YoutubeDownloader/sessions/236958f5-6d0f-4ece-88ca-4884f756785b Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com>
|
Just as a heads up, I was blocked by some firewall rules while working on your feedback. Expand below for details. Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
…sBundled() Agent-Logs-Url: https://github.com/Tyrrrz/YoutubeDownloader/sessions/d4b38944-b8d7-4c3b-8ba8-1bae0c717b4b Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com>
Done in 44626e7 — Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
|
@copilot fix formatting please |
|
@copilot update the readme to remove mentions of the |
Agent-Logs-Url: https://github.com/Tyrrrz/YoutubeDownloader/sessions/cc7d9522-6977-486c-8061-a4c3df400233 Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com>
Fixed in 6e1c2f1 — removed trailing spaces after the semicolon on Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
Agent-Logs-Url: https://github.com/Tyrrrz/YoutubeDownloader/sessions/d8b47f81-9dae-45e4-a80c-71ebc02791d1 Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com>
Removed note about FFmpeg requirements and custom installation.
Eliminates the
*.Baredistribution by having the app auto-download FFmpeg at startup if not detected, using the dashboard's existing progress bar for visual feedback. The dialog ViewModel/View renames are not included.Changes
Remove
*.Baredistributionpackanddeployjobs no longer have abundle-ffmpegmatrix dimension — all builds publish without bundled FFmpegRemove build-time FFmpeg download
DownloadFFmpegMSBuild target,DownloadFFmpegproperty, ffmpeg bundle<None>item groups, and theDownloadFFmpeg.csxscript entirely — FFmpeg is no longer downloaded at build time for development or CI buildsRuntime FFmpeg auto-download
FFmpeg.DownloadAsync(outputFilePath, progress?, ct?)added to Core — downloads FFmpeg v8.1.0 fromTyrrrz/FFmpegBinGitHub releases using the sharedHttp.Client; streaming HTTP progress written to a temp archive inPath.GetTempPath(); sets executable bit (UserExecute) on UnixRuntimeInformation.ProcessArchitecture(viaGetSystemMoniker()/GetArchitectureMoniker()helpers) for correct platform detection including Rosetta 2 on macOSDashboardViewModelgains anInitializeCommand(triggered fromDashboardView.UserControl_OnLoaded) that runsEnsureFFmpegAsync():IsBusystate and_progressMuxerprogress bar, with a snackbar notification (FFmpegDownloadingTitle)MainViewModel.InitializeAsync()no longer calls into the dashboard for FFmpeg; the dashboard initializes itself on loadUpdate service
UpdateServicenow always resolvesYoutubeDownloader.{RuntimeIdentifier}.zip— removed theFFmpeg.IsBundled()conditional that previously selected aBare-suffixed assetFFmpeg.IsBundled()from Core as it is no longer neededLocalization
FFmpegMissingMessageupdated to a concise auto-download prompt (removes Bare distribution references)FFmpegDownloadingTitlein English, French, German, Spanish, and Ukrainian (used as a snackbar notification during download)FFmpegMissingSearchedLabel(searched paths are no longer listed to the user)FFmpegPathMissingMessageandSettingsButton(no longer needed since custom paths are trusted without checks)