diff --git a/src/metadata_services/vlc/VLCMetadataService.cpp b/src/metadata_services/vlc/VLCMetadataService.cpp index 3a6e74607dfe776402647143ae7bbea3f76f8313..8298f2eb94be6d77a7f551edfedb83be2661802c 100644 --- a/src/metadata_services/vlc/VLCMetadataService.cpp +++ b/src/metadata_services/vlc/VLCMetadataService.cpp @@ -104,7 +104,15 @@ bool VLCMetadataService::parseAudioFile( FilePtr file, VLC::Media& media ) const return true; auto album = m_ml->album( albumTitle ); if ( album == nullptr ) + { album = m_ml->createAlbum( albumTitle ); + if ( album != nullptr ) + { + auto date = media.meta( libvlc_meta_Date ); + if ( date.length() > 0 ) + album->setReleaseDate( std::stoul( date ) ); + } + } if ( album == nullptr ) { LOG_ERROR( "Failed to create/get album" ); diff --git a/test/VLCMetadataServices.cpp b/test/VLCMetadataServices.cpp index 9d9a4532c28f653f1d6fcde8a825b726a64da2da..657cc167ddf558bb4f1d6bc7e728d207dae08444 100644 --- a/test/VLCMetadataServices.cpp +++ b/test/VLCMetadataServices.cpp @@ -97,6 +97,9 @@ TEST_F( VLCMetadataServices, ParseAlbum ) ASSERT_EQ( album->title(), "Boys for Pele" ); // ASSERT_NE( album->artworkUrl().length(), 0u ); + auto releaseDate = album->releaseDate(); + ASSERT_NE( releaseDate, 0 ); + auto album2 = ml->album( "Boys for Pele" ); ASSERT_EQ( album, album2 ); }