Refactored API and Blazor client to dynamically construct download URLs using the configured API base URL instead of hardcoded localhost addresses. Enhanced root endpoint and startup logs to reflect environment-specific URLs. Added GetBaseUrl() to ITuneRipperApiService for consistent URL generation.
Session info display was relocated from the logo area to the bottom of the main content in Home.razor. Updated CSS to make the session info less prominent by removing background and border, reducing font size and padding, and lowering opacity. Improved layout and responsiveness for a more subtle appearance.
Introduced a new DonateButton component that displays a styled "Donate" button with a PayPal icon and opens a PayPal donation link in a new tab using JS interop. Added responsive CSS for the component. Integrated the DonateButton into Home.razor below the feature list to encourage user support. Updated _Imports.razor to make the component available app-wide.
Introduce automatic ZIP file creation and management for session-based downloads.
- Server: Add endpoints to serve and provide info about session ZIPs; VideoService now updates ZIP after each MP3 download with user-friendly filenames.
- Client: Add "Download All in ZIP" button with loading state and ZIP info; trigger browser download via JS interop; responsive and styled UI.
- API: Extend service interfaces for ZIP download/info; add SessionZipInfo model.
- Docs: Update SESSION_MANAGEMENT.md with ZIP workflow, endpoints, and UX details.
- Robust error handling and logging throughout.
Organize downloaded files into per-job subdirectories under "downloads" instead of a flat structure. Update DownloadController and VideoService to read, write, and delete files within these job-specific directories. Add helper methods for directory management and improve logging. Update download/delete endpoints and result URLs to reflect the new structure. Clean up empty job directories after file deletion.
- Add @onblur and @onmousedown handlers to input/button for better focus and click behavior
- Change download button disabling logic to only depend on processing state
- Update progress bars, status, and card colors from green to blue
- Add .output-message CSS class for blue-themed output messages
- Adjust pulse animation to use blue tones
- Add OnInputBlur and PreventDefault methods for improved input/button interaction
- Integrate yt-dlp.exe for real YouTube audio download/conversion
- Serve actual MP3 files from wwwroot/downloads via API and static files
- Report real-time progress from yt-dlp to frontend
- Enhance DownloadController: file serving, metadata, deletion endpoints
- Update VideoController to track and return real file info/URLs
- Enable static file serving in Program.cs; update API info/logging
- Update Blazor frontend to use real download URLs and remove old JS logic
- Add README_UPDATED.md with new workflow and troubleshooting
- Improve error handling, logging, and file cleanup throughout backend
- Update .gitignore for downloads and yt-dlp.exe
Refactored backend to extract actual YouTube title and thumbnail from HTML, removing simulated metadata fields (description, author, duration, views, upload date, tags). Simplified UI to display only title and thumbnail, and enhanced visuals with animated musical notes background. Removed related formatting and display logic for unused metadata.
Enhance Home page with a floating musical notes background for a more engaging visual experience. Added markup and CSS for animated notes, including responsive adjustments. Removed obsolete inline styles from Home.razor.
Removed /api/video/details endpoint; video details now fetched as first step of processing and included in progress/status responses. Updated backend models and controller logic to support integrated workflow and improved error handling. Refactored frontend to show video info and conversion progress in real time, removed legacy API calls, and enhanced UI/UX with responsive video info cards and progress bars. Updated documentation and example code to reflect new workflow.
Major UI overhaul for TuneRipper: removed sidebar navigation, refactored layout to a centered, single-page experience with a modern hero section and input form for YouTube-to-MP3 conversion. Added new logo and high-res icons (logo.png, icon-192.png, icon-512.png), updated favicon and app icons, and introduced manifest.json for PWA support. Removed Counter, Weather, and NotFound pages; improved global and page-specific CSS for branding and responsiveness.