- Add Dockerfile to project root
- Install required dependencies including ffmpeg and libchromaprint-tools
- Set up working directory and copy necessary files
- Define entry point for running CLI application
- Configure volume mounting to reflect changes between container and local directory
- Implement generateUniqueFilename to ensure each file is saved with a unique name
These changes address the issue when two or more different songs by the same artist and with the same title overwrite each other
- Refactor downloadImage to use a consistent directory creation method
- Ensure directories exist before saving images
- Improve error handling for file and HTTP operations
- Update saveImageToFile to resolve paths and handle directories
robustly
- Implemented the service and adapter layers instead of controllers to simplify the integration of new audio recognition and metadata fetching APIs.
- Unified code styling and practices throughout the project to ensure consistency.
- Create metadataController to orchestrate the retrieval of metadata for given recording IDs.
- Develop metadataRetrieval for direct API communication with MusicBrainz, handling request execution and response parsing.
- Implement musicBrainzApiErrorHandler from scratch to provide specific error messages for different HTTP response codes related to MusicBrainz API requests.
- Ensure complete integration across newly written components for a cohesive metadata retrieval flow.
These changes establish a new MusicBrainz API integration system that facilitates metadata retrieval with comprehensive error handling features, improving the resilience and maintainability of the application.
- Transitioned audio recognition in audioRecognition service from Audd API to AcoustID, leveraging audio fingerprinting instead of direct audio file analysis.
- Created acoustidApiErrorHandler for modular error handling within the audioRecognition service.
- Developed a retry mechanism for axios requests in the retryAxios service to enhance robustness.
- Added dependencies on fpcalc and chromaprint to generate audio fingerprints, now required to be installed and set in the system PATH for Windows environments.
Removed all files, dependencies, and mentions related to the AuDD API. Cleaned up the src directory, removing all non-developed or unused items, as part of a major cleanup. This change is due to the strategic shift towards using audio fingerprinting for song recognition, as opposed to sending the raw audio file itself.
- Refactor error handling by consolidating all errors in a newly created 'errors' directory.
- Introduce truncateAudioStream functionality to limit audio file processing to 25 seconds, optimizing performance and API usage.
The newly added 'errors' directory contains the apiError handler which provides a centralized error handling mechanism to easily manage error consistency and possible expansion in the future.