NickvisionApps/Parabolic
35.2
Weak · 23 September 2026
10.4k
lines of production code
C#
primary language
5
measurements over time
What this system is
Parabolic is a cross-platform desktop application for downloading and managing media content, supporting both Windows (WinUI) and Linux/GNOME environments. It provides a unified backend for handling downloads, history, and configuration, while offering native user interfaces for each platform. The system integrates with external tools like yt-dlp and Deno to process media, with additional features including browser extensions and multi-language support.
How it got here
2021–2024 — multi-platform rewrite
6 changes.
The project was completely restructured and renamed to Parabolic, replacing the original Avalonia-based implementation with native WinUI and GNOME/Adwaita frameworks. This period established the new cross-platform architecture, including shared code, platform-specific UIs, and comprehensive internationalization support.
2025 — WinUI 3 desktop application and download management
10 changes.
This period focused on building the native Windows desktop application using the WinUI 3 framework, introducing a comprehensive download and history management system. The work included creating new backend services, models, and UI controls to handle downloads, track history, and manage user settings.
2026 — GNOME desktop interface and macOS packaging
5 changes.
This period focused on implementing a complete GNOME desktop interface, introducing new UI blueprints, components, and resources for download management and settings. Simultaneously, the macOS build process was updated to automatically bundle all necessary runtime dependencies into the application bundle.
Features
Add GNOME-specific UI resources and styling
The GNOME desktop environment integration now includes a new set of 16x16 symbolic SVG icons (including brain-augemented, checkmark, dark-mode, globe, and others) and a CSS stylesheet (org.nickvision.tubeconverter.css) that defines status icon styling for success, error, and stopped states. These assets are registered in the GResource manifest, enabling the application to display appropriate visual feedback and icons within the GNOME interface.
Nickvision.Parabolic.GNOME/Resources · high confidence
Add Linux packaging and installation infrastructure
The application now includes the necessary files to build and install the Linux package, including a desktop entry, a D-Bus service file, a launcher script, and a metainfo XML for appstream metadata. A new shell script automates the publishing and installation process, handling directory creation, file templating, and database updates.
resources/linux · high confidence
Add SRT subtitle fix plugin
A new post-processor plugin, srt\_fix, has been added to the yt-dlp-plugins directory. This plugin parses and processes SRT subtitle files to fix common formatting issues, such as merging short or overlapping subtitles and removing duplicates. Users can now apply this plugin to improve the quality of downloaded subtitles.
resources/yt-dlp-plugins · high confidence
Add download event args for download lifecycle tracking
New event argument classes have been introduced in the shared project to expose download lifecycle events. These include DownloadAddedEventArgs, DownloadCompletedEventArgs, DownloadEventArgs, DownloadProgressChangedEventArgs, and DownloadRequestedEventArgs. These classes provide structured data about download states, progress, and completion, enabling consumers to react to download events.
Nickvision.Parabolic.Shared/Events · high confidence
Introduce GNOME desktop interface with new dialogs and download management
The application now includes a full GNOME desktop interface, featuring a main window that manages download rows and a dedicated AddDownloadDialog for configuring single or batch downloads. Users can also manage their download history, edit stored credentials, and adjust application preferences through new dialog windows. The main window provides controls to stop, retry, and clear downloads, while the preferences dialog allows configuration of codecs, subtitles, and other settings.
Nickvision.Parabolic.GNOME/Views · high confidence
Introduce GNOME-specific download and loading UI components
Added new GNOME-specific controls: DownloadRow, which renders individual download items with thumbnails, status icons, progress bars, and action buttons, and LoadingDialog, a modal dialog for loading states. These components provide the visual representation and user interaction for the download list and loading states in the GNOME interface.
Nickvision.Parabolic.GNOME/Controls · high confidence
Introduce WinUI 3 desktop application shell and core UI views
Users can now run Parabolic as a native Windows desktop application built on WinUI 3. This change introduces the primary application entry point (App, Program, and MainWindow) which establishes the main window with a standard menu bar (File, Edit, View, Downloads, Help) and system backdrop. Additionally, the update adds the XAML and code-behind for the AddDownloadDialog, HistoryDialog, and KeyringDialog views, providing the user interface for adding downloads, managing download history, and managing stored credentials within the new Windows UI framework.
Nickvision.Parabolic.WinUI/Views · high confidence
Introduce shared helpers and configuration extensions for Parabolic
The Parabolic shared library now includes a suite of helper classes and extension methods to support application configuration, JSON serialization, and utility functions. A new \ApplicationJsonContext\ provides a typed JSON serialization context for application models. \HostApplicationBuilderExtensions\ registers core services (e.g., \DownloadService\, \HistoryService\, \ThumbnailService\) and configures the application's metadata and logging. \IConfigurationServiceExtensions\ exposes a wide range of user-facing settings, including download limits, file format preferences, and history length. Additionally, new extension methods handle string sanitization, time/size parsing, and media type checks.
Nickvision.Parabolic.Shared/Helpers · high confidence
Introduces bindable selection item wrappers and collection extension methods
The application now provides bindable wrapper classes for various selection items—specifically BindableCredentialSelectionItem, BindableHistoricDownloadSelectionItem, BindableMediaSelectionItem, and BindablePostProcessorArgument—each implementing INotifyPropertyChanged to support UI data binding. Additionally, extension methods have been added to convert standard selection item collections into observable collections of these bindable wrappers, and helper extensions for ComboBox and ListView are introduced to manage selection states programmatically.
Nickvision.Parabolic.WinUI/Helpers · high confidence
New About dialog and DownloadRow controls for the WinUI interface
The WinUI frontend now includes an About dialog that displays application information, changelog, debugging details, and credits across selectable tabs, along with a DownloadRow control that renders individual download items with thumbnails, status indicators, progress bars, and action buttons (pause, stop, play, open folder, retry) in a card-style layout.
Nickvision.Parabolic.WinUI/Controls · high confidence
New GNOME UI blueprints for downloads and settings
The GNOME frontend received a complete set of new Blueprint (.blp) files that define the user interface for core features. The main window now includes a download list with filtering toggles (All, Running, Queued, Completed, Failed) and a context menu for batch operations (Stop All, Retry All, Clear All). A new DownloadRow component displays individual download status, progress, and actions (pause, stop, play, open, retry). Additional dialogs have been added for History, Preferences, Keyring management, and keyboard shortcuts, providing a consistent GNOME-style interface for managing downloads and application settings.
Nickvision.Parabolic.GNOME/Blueprints · high confidence
New backend services for downloads, history, and configuration migration
The application introduces a suite of new backend services to handle core functionality. The DownloadService manages active, queued, and completed downloads, while the HistoryService persists and retrieves past download records. A new RecoveryService tracks incomplete downloads to allow resumption after crashes. Configuration migration is handled by ConfigurationMigrationService, which moves legacy settings to the new format. Additionally, the DiscoveryService processes media URLs and batch files, the EventsService centralizes event propagation, and the ThumbnailService caches and maps media thumbnails. The DenoExecutableService and YtdlpExecutableService manage the underlying yt-dlp and Deno runtimes required for these operations.
Nickvision.Parabolic.Shared/Services · high confidence
New download and history management controllers
The application introduces new controllers to manage the download interface and user history. The AddDownloadDialogController handles the logic for adding single or playlist downloads, supporting options like reverse order, title numbering, and subtitle filtering. A new HistoryViewController provides a view into past downloads, allowing users to sort by newest, filter by time period, and clear history. Additionally, a KeyringViewController enables users to manage saved credentials for protected content, and the PreferencesViewController exposes settings for codecs, frame rates, and post-processing, giving users direct control over download parameters and application behavior.
Nickvision.Parabolic.Shared/Controllers · high confidence
New download models and configuration options
The application introduces a comprehensive set of new models to support download management and media selection. A new \Download\ model handles the lifecycle of active downloads, including start, pause, resume, and stop states, while \DownloadOptions\ allows users to specify file types, video/audio formats, resolutions, and post-processing arguments. The \Media\ and \Format\ models now expose detailed metadata about available media, including codecs, bitrates, and frame rates. Additionally, \HistoricDownload\ and \HistoryLength\ models are added to support a download history feature, and \M3UFile\ enables playlist export functionality.
Nickvision.Parabolic.Shared/Models · high confidence
Parabolic browser extensions gain context menu integration and playlist trimming
The Parabolic browser extensions for Chrome and Firefox now include a context menu option to open links directly in Parabolic, accessible via right-click on any link or page. Additionally, users can enable a setting to automatically strip YouTube playlist parameters from URLs, ensuring only the current video is downloaded. These features are configurable through the extension's settings page, which also allows users to toggle the context menu integration on or off.
extension · high confidence
Project renamed to Parabolic and restructured for multi-platform builds
The application has been renamed from 'Tube Converter' to 'Parabolic', with the solution file and project structure updated to reflect this change. The build system now includes a shared project (Nickvision.Parabolic.Shared) containing common controllers, models, and services, alongside platform-specific projects for GNOME and WinUI. A new MSBuild targets file (Nickvision.Common.targets) automates copying yt-dlp plugins and generating translations during build and publish. The old Inno Setup installer script and legacy solution file have been removed.
(repo-wide) · high confidence
Windows installer configuration for Parabolic
Added the Inno Setup script (setup.iss) that defines the Windows installer for the Parabolic application. This script configures the installation of the main executable, supporting tools (yt-dlp, aria2c, ffmpeg, ffprobe), and the newly included deno executable, alongside setting up desktop/quick-launch icons and custom URL protocol handlers.
inno · high confidence
macOS app packaging and dependency bundling
The macOS build process now automatically packages the application into a standard .app bundle and bundles all required runtime dependencies—including GTK4, libadwaita, yt-dlp, aria2c, ffmpeg, ffprobe, ffplay, and deno—directly into the application bundle. This ensures the app can run on macOS without requiring users to manually install these external tools or frameworks.
resources/macos · high confidence
Behavioural changes
Removal of the original Avalonia-based application implementation
The application's core components built on the Avalonia UI framework have been removed. This includes the main window and settings dialog views (XAML and code-behind), the associated view models, the download and configuration models, and the application entry point. This change likely precedes a migration to a different UI framework or architecture, as the entire existing UI and logic layer for the current version is deleted.
NickvisionTubeConverter · high confidence
Updated translations for 47 languages
The application's translation files have been updated via Weblate, adding support for 47 languages including Adyghe, Arabic, Belarusian, Bulgarian, Bengali, Catalan, Czech, and many others. This ensures the user interface is available in a wide range of languages, with the \LINGUAS\ and \POTFILES\ files updated to reflect the current set of supported locales.
resources/po · high confidence
Dependencies
Migrated from Avalonia to native platform frameworks (WinUI and GNOME)
The application has been rebuilt on native platform frameworks, replacing the previous Avalonia-based implementation. The Windows desktop application now uses WinUI with the Windows App SDK, while the Linux/Unix version uses GNOME/Adwaita. This migration updates the target framework to .NET 10.0 and introduces new dependencies such as CommunityToolkit.WinUI, Microsoft.WindowsAppSDK, and GirCore.Adw-1, enabling platform-specific UI and performance improvements.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.
Score
- CAI 35 → 35 (+0.5)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 36 → 33 (-2.9)
- Architecture 77 → 76 (-1.1)
- Maturity 47 → 47 (-0.1)
- Readiness 22 → 22 (+0.0)
- Security 56 → 77 (+20.3)
- Performance 67 → 67 (+0.0)
Resolved (36)
- Build did not complete in the analyzer
- Change coupling: DownloadService.cs ↔ HistoryService.cs (Nickvision.Parabolic.Shared/Services/DownloadService.cs)
- Change coupling: DownloadService.cs ↔ RecoveryService.cs (Nickvision.Parabolic.Shared/Services/DownloadService.cs)
- Change coupling: HistoryService.cs ↔ IDownloadService.cs (Nickvision.Parabolic.Shared/Services/HistoryService.cs)
- Change coupling: HistoryService.cs ↔ RecoveryService.cs (Nickvision.Parabolic.Shared/Services/HistoryService.cs)
- Change coupling: IDownloadService.cs ↔ RecoveryService.cs (Nickvision.Parabolic.Shared/Services/IDownloadService.cs)
- Change coupling: MainWindowController.cs ↔ DiscoveryResult.cs (Nickvision.Parabolic.Shared/Controllers/MainWindowController.cs)
- Change coupling: MainWindowController.cs ↔ DownloadService.cs (Nickvision.Parabolic.Shared/Controllers/MainWindowController.cs)
- Change coupling: MainWindowController.cs ↔ HistoryService.cs (Nickvision.Parabolic.Shared/Controllers/MainWindowController.cs)
- Change coupling: MainWindowController.cs ↔ PreferencesViewController.cs (Nickvision.Parabolic.Shared/Controllers/MainWindowController.cs)
- Duplicated block (11 lines × 2) (Nickvision.Parabolic.Shared/Controllers/PreferencesViewController.cs)
- Duplicated block (12 lines × 2) (Nickvision.Parabolic.Shared/Models/Format.cs)
- Duplicated block (19 lines × 2) (Nickvision.Parabolic.WinUI/Views/SettingsPage.xaml.cs)
- Duplicated block (8 lines × 2) (Nickvision.Parabolic.Shared/Services/ConfigurationMigrationService.cs)
- Duplicated block (8 lines × 2) (Nickvision.Parabolic.Shared/Services/DownloadService.cs)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- …and 16 more
New (52)
- CI installs an unverified third-party binary (.github/workflows/macos.yml)
- Documentation: no architecture or design documentation (README.md)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- Duplicated block (10 lines × 2) (Nickvision.Parabolic.Shared/Services/DownloadService.cs)
- Duplicated block (11 lines × 2) (Nickvision.Parabolic.GNOME/Views/KeyringDialog.cs)
- Duplicated block (12 lines × 2) (Nickvision.Parabolic.GNOME/Views/MainWindow.cs)
- Duplicated block (12 lines × 2) (Nickvision.Parabolic.Shared/Controllers/PreferencesViewController.cs)
- Duplicated block (12 lines × 2) (Nickvision.Parabolic.Shared/Services/DownloadService.cs)
- Duplicated block (12 lines × 2) (Nickvision.Parabolic.WinUI/Views/MainWindow.xaml.cs)
- Duplicated block (13 lines × 2) (Nickvision.Parabolic.GNOME/Views/AddDownloadDialog.cs)
- Duplicated block (14 lines × 2) (Nickvision.Parabolic.GNOME/Views/KeyringDialog.cs)
- Duplicated block (15 lines × 2) (Nickvision.Parabolic.Shared/Models/Format.cs)
- Duplicated block (20 lines × 2) (Nickvision.Parabolic.WinUI/Views/SettingsPage.xaml.cs)
- Duplicated block (6 lines × 2) (Nickvision.Parabolic.GNOME/Views/MainWindow.cs)
- Duplicated block (6 lines × 2) (Nickvision.Parabolic.GNOME/Views/MainWindow.cs)
- Duplicated block (7 lines × 2) (Nickvision.Parabolic.GNOME/Views/MainWindow.cs)
- Duplicated block (7 lines × 2) (Nickvision.Parabolic.GNOME/Views/MainWindow.cs)
- Duplicated block (8 lines × 2) (Nickvision.Parabolic.Shared/Services/ConfigurationMigrationService.cs)
- High: security finding (details withheld)
- …and 32 more
Architecture
- Unchanged — 2 containers · 0 contexts · 0 edges
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
NickvisionApps/Parabolic was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 23 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 1118e6a3abbf5ffc1f764c4c9781f98d4c0482d4 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-955b9cee9818.