jherby2k / AudioWorks

A cross-platform, multi-format audio conversion and tagging suite
GNU Affero General Public License v3.0
63 stars 6 forks source link

Get-AudioFile (without a file extension) #34

Closed darwincr closed 2 years ago

darwincr commented 3 years ago

I am having an issue where some files are sometimes named .wav but they are of .mp3 or .wma format (incorrect extension)

When I do a Get-AudioFile it fails:

Get-AudioFile : Not a valid RIFF stream.
At line:1 char:1
+ Get-AudioFile 'C:\Exp\Test-Encode\wavfiles\88c37d0d-918e-4c6a-860a-18 ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (C:\Exp\Test-Enc...865c3285da2.wav:String) [Get-AudioFile], AudioInvalidException
    + FullyQualifiedErrorId : AudioInvalidException,AudioWorks.Commands.GetAudioFileCommand

if i remove the file extension, it fails with this error:

Get-AudioFile : Unable to decode 'C:\Exp\Test-Encode\wavfiles\88c37d0d-918e-4c6a-860a-1865c3285da2' with any loaded extension.
At line:1 char:1
+ Get-AudioFile 'C:\Exp\Test-Encode\wavfiles\88c37d0d-918e-4c6a-860a-18 ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (C:\Exp\Test-Enc...0a-1865c3285da2:String) [Get-AudioFile], AudioUnsupportedException
    + FullyQualifiedErrorId : AudioUnsupportedException,AudioWorks.Commands.GetAudioFileCommand

Is there a way I can get these to work without manual intervention?

88c37d0d-918e-4c6a-860a-1865c3285da2.zip

jherby2k commented 2 years ago

Not without some code rewrite. Compatible decoders are filtered by file extension and then tried sequentially, for performance reasons. So for example, if you have an .m4a file it'll only try to decode it as AAC or ALAC. I suppose we could have a switch to have it try all of them, but it seems pretty niche. You should just fix your files IMO.

darwincr commented 2 years ago

I used the error output to fix incorrect filenames manually thanks for your powershell module nice work