70 Commits

Author SHA1 Message Date
xtrullor73
caf9d554ef feat: add lyric retrieval feature 2024-05-12 18:19:36 -07:00
Xtrullor73
02122e6b55 feat(api-integration): implement MusicBrainz API integration and error handling
- 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.
2024-05-12 17:51:56 -07:00
xtrullor73
538ffdbe36 feat: integrate AcoustID for song recognition using audio fingerprinting
- 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.
2024-05-11 19:45:26 -07:00
xtrullor73
0cd351f140 refactor: move checkEnvVariables and checkInputPath to services directory 2024-05-11 19:25:06 -07:00
xtrullor73
a97736abee refactor: remove AuDD references and unused project files
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.
2024-05-09 23:40:46 -07:00
xtrullor73
8bb93cafd6 feat: improve error handling and add streamline audio processing
- 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.
2024-05-07 20:00:36 -07:00
xtrullor73
0f96fdd89f feat(spotify-api): add track metadata fetching function 2024-05-02 15:42:17 -07:00
xtrullor73
53790cc8e2 feat(authentication): implement Spotify API token retrieval function 2024-05-02 15:38:42 -07:00
xtrullor73
7af16f2da0 chore(app.js): remove console.log statements 2024-05-02 15:35:40 -07:00
xtrullor73
c27113dac2 feat(env): switch to native --env-file flag support
Remove dotenv package and update the application to use Node.jss built-in --env-file flag for loading environment variables. This change is made to simplify the configuration by utilizing native capabilities introduced in Node.js v16.x.x.
2024-04-21 23:55:15 -07:00
xtrullor73
fa68212d6c feat(controllers): orchestrate audio file processing workflow 2024-04-21 22:47:52 -07:00
xtrullor73
de0e50cc80 feat(api): implement audio recognition with Audd API 2024-04-21 22:46:13 -07:00
xtrullor73
6d304ccf00 feat(services): add audio file validation 2024-04-21 22:44:49 -07:00
xtrullor73
6e932c3759 feat(utils): add directory file fetching functionality 2024-04-21 22:42:41 -07:00
xtrullor73
25e2dcc143 feat(app): configure environment and launch audio controller 2024-04-21 22:40:49 -07:00
xtrullor73
656595f9c9 refactor: Reorganize project directory and refine logic separation
- Move audioFileValidator and audioTagWriter to src/services to underline their role in the application's core logic.
- Create audioController.js in src/controllers to handle validation and API interactions, centralizing request handling and streamlining app.js.
2024-04-20 17:15:41 -07:00
xtrullor73
80741eb5bd feat: Implement audioFileValidator for audio file type checking and directory file fetcher
Create a new audioFileValidator module to ensure only audio files are processed. Add directoryFileFetcher module to traverse and fetch file paths from directories.
2024-04-19 23:51:58 -07:00
xtrullor73
10722dfd8b chore: configure npm packages and ESLint 2024-04-19 10:25:28 -07:00
xtrullor73
0100435288 feat: initialize project source structure
- src/index.js: Entry point of the CLI application that processes command-line arguments and orchestrates the audio recognition and metadata tagging process.
- src/api/audioRecognition.js: Handles communication with the audio recognition API to identify songs from provided audio files.
- src/api/metadataRetrieval.js: Fetches additional song metadata such as album art, artist, and release date from music metadata services.
- src/utils/fileHandler.js: Manages file I/O operations, including reading audio files and writing metadata to them.
- src/utils/tagWriter.js: Writes the retrieved metadata to the audio files' ID3 tags, leveraging the node-id3 library.
2024-04-19 10:22:55 -07:00
Vlad Ryzhov
23428332d6 Initial commit 2024-04-18 23:40:17 -07:00