MediaRecycler is a user-friendly application designed to help recover and reuse videos or images from websites or intranets. It is built with modern .NET technologies and leverages robust libraries for web automation, downloading, and configuration.
- Concurrent, robust downloading with retry and queue persistence
- Automated extraction of video links from web pages
- Headless browser automation for scraping dynamic content
- Configurable via JSON and environment variables
- Logging to file, console, and UI
- Target Framework: .NET 9.0 (
net9.0-windows10.0.17763.0) - UI: Windows Forms for a familiar desktop experience
- Microsoft.Extensions.DependencyInjection: For service registration and dependency management
- Microsoft.Extensions.Logging: For structured logging (console, debug, file, and UI)
- Microsoft.Extensions.Configuration: For flexible configuration via
appsettings.jsonand environment variables
- Microsoft.Bcl.AsyncInterfaces: For advanced async/await support
- Polly: For retry policies and fault handling during downloads
- PuppeteerSharp: For headless browser automation and scraping of dynamic web content
- PuppeteerSharp.Dom: For advanced DOM manipulation and querying
- MiniFrontier: Used for managing a queue/frontier of URLs to process
- xUnit: For unit testing
- Moq: For mocking dependencies in tests
- coverlet.collector: For code coverage
-
Requirements
- Windows 10 (build 17763) or later
- .NET 9 SDK
-
Configuration
- Edit
appsettings.jsonfor custom settings (download paths, scraping options, etc.)
- Edit
-
Running
- Build and run the solution in Visual Studio 2022 or via
dotnet run
- Build and run the solution in Visual Studio 2022 or via
Open Source. See file headers for author and license information.
This project uses open source libraries. All code can be reused; do not remove author tags.