sandreas / m4b-tool

m4b-tool is a command line utility to merge, split and chapterize audiobook files such as mp3, ogg, flac, m4a or m4b
MIT License
1.15k stars 76 forks source link

`could not tag file. Argument #1 ($process) must be of type M4bTool\Executables\Process` #199

Closed djdembeck closed 2 years ago

djdembeck commented 2 years ago

When merging a folder of mp3 files, something is going wrong during the tag process it seems. I am using these Docker versions for deps:

FROM sandreas/ffmpeg:5.0.1-3 as ffmpeg
FROM sandreas/mp4v2:2.1.1 as mp4v2
FROM sandreas/fdkaac:2.0.1 as fdkaac

M4B command: ['/usr/local/bin/m4b-tool', 'merge', '--output-file=/output/Matt Haig/The Humans/The Humans - A Novel.m4b', '--name=The Humans - A Novel', '--album=The Humans', '--artist=Mark Meadows', '--albumartist=Matt Haig', '--year=2013', '--description=The critically acclaimed author of The Radleys shares a clever, heartwarming, and darkly insightful novel about an alien who comes to Earth to save humans from themselves....', '--genre=Literature & Fiction/Science Fiction & Fantasy/Genre Fiction/Family Life/Literary Fiction/Science Fiction/Humorous', '--comment=Unabridged', '--cover=/input/Matt Haig - The Humans_cover.jpg', '--force', '--no-chapter-reindexing', '--no-cleanup', '--ignore-source-tags', '--jobs=24', '-vvv', '--audio-bitrate=65000', '--audio-samplerate=44100', PosixPath('/input/Matt Haig - The Humans')]

Error:

tagFile - filename: /tmp/m4b-tool/tmp_The Humans - A Novel.m4b
full tag: {"album":"The Humans","albumArtist":"Matt Haig","artist":"Mark Meadows","comment":"Unabridged","cover":"\/input\/Matt Haig - The Humans_cover.jpg","description":"The critically acclaimed author of The Radleys shares a clever, heartwarming, and darkly insightful novel about an alien who comes to Earth to save humans from themselves....","encoder":"m4b-tool","genre":"Literature & Fiction\/Science Fiction & Fantasy\/Genre Fiction\/Family Life\/Literary Fiction\/Science Fiction\/Humorous","title":"The Humans - A Novel","type":2,"year":"2013"}
'mp4tags' '-help'
'mp4tags' '-A' 'The Humans' '-a' 'Mark Meadows' '-s' 'The Humans - A Novel' '-g' 'Literature & Fiction/Science Fiction & Fantasy/Genre Fiction/Family Life/Literary Fiction/Science Fiction/Humorous' '-m' 'The critically acclaimed author of The Radleys shares a clever, heartwarming, and darkly insightful novel about an alien who comes to Earth to save humans from themselves....' '-R' 'Matt Haig' '-y' '2013' '-c' 'Unabridged' '-E' 'm4b-tool' '-i' '2' '/tmp/m4b-tool/tmp_The Humans - A Novel.m4b'
could not tag file /tmp/m4b-tool/tmp_The Humans - A Novel.m4b, error: M4bTool\Executables\AbstractExecutable::handleExitCode(): Argument #1 ($process) must be of type M4bTool\Executables\Process, Symfony\Component\Process\Process given, called in phar:///usr/local/bin/m4b-tool/src/library/Executables/Mp4tags.php on line 106
#0 phar:///usr/local/bin/m4b-tool/src/library/Executables/Mp4tags.php(106): M4bTool\Executables\AbstractExecutable->handleExitCode()
#1 phar:///usr/local/bin/m4b-tool/src/library/Executables/Mp4tags.php(71): M4bTool\Executables\Mp4tags->storeTagsToFile()
#2 phar:///usr/local/bin/m4b-tool/src/library/Executables/Mp4v2Wrapper.php(72): M4bTool\Executables\Mp4tags->writeTag()
#3 phar:///usr/local/bin/m4b-tool/src/library/Audio/BinaryWrapper.php(270): M4bTool\Executables\Mp4v2Wrapper->writeTag()
#4 phar:///usr/local/bin/m4b-tool/src/library/Command/AbstractConversionCommand.php(260): M4bTool\Audio\BinaryWrapper->writeTag()
#5 phar:///usr/local/bin/m4b-tool/src/library/Command/MergeCommand.php(917): M4bTool\Command\AbstractConversionCommand->tagFile()
#6 phar:///usr/local/bin/m4b-tool/src/library/Command/MergeCommand.php(533): M4bTool\Command\MergeCommand->tagMergedFile()
#7 phar:///usr/local/bin/m4b-tool/src/library/Command/MergeCommand.php(424): M4bTool\Command\MergeCommand->processInputFiles()
#8 phar:///usr/local/bin/m4b-tool/src/library/Command/MergeCommand.php(185): M4bTool\Command\MergeCommand->processFiles()
#9 phar:///usr/local/bin/m4b-tool/vendor/symfony/console/Command/Command.php(255): M4bTool\Command\MergeCommand->execute()
#10 phar:///usr/local/bin/m4b-tool/vendor/symfony/console/Application.php(1009): Symfony\Component\Console\Command\Command->run()
#11 phar:///usr/local/bin/m4b-tool/vendor/symfony/console/Application.php(273): Symfony\Component\Console\Application->doRunCommand()
#12 phar:///usr/local/bin/m4b-tool/vendor/symfony/console/Application.php(149): Symfony\Component\Console\Application->doRun()
#13 phar:///usr/local/bin/m4b-tool/bin/m4b-tool.php(52): Symfony\Component\Console\Application->run()
#14 /usr/local/bin/m4b-tool(10): require('...')
#15 {main}
trace: #0 phar:///usr/local/bin/m4b-tool/src/library/Executables/Mp4tags.php(106): M4bTool\Executables\AbstractExecutable->handleExitCode()
#1 phar:///usr/local/bin/m4b-tool/src/library/Executables/Mp4tags.php(71): M4bTool\Executables\Mp4tags->storeTagsToFile()
#2 phar:///usr/local/bin/m4b-tool/src/library/Executables/Mp4v2Wrapper.php(72): M4bTool\Executables\Mp4tags->writeTag()
#3 phar:///usr/local/bin/m4b-tool/src/library/Audio/BinaryWrapper.php(270): M4bTool\Executables\Mp4v2Wrapper->writeTag()
#4 phar:///usr/local/bin/m4b-tool/src/library/Command/AbstractConversionCommand.php(260): M4bTool\Audio\BinaryWrapper->writeTag()
#5 phar:///usr/local/bin/m4b-tool/src/library/Command/MergeCommand.php(917): M4bTool\Command\AbstractConversionCommand->tagFile()
#6 phar:///usr/local/bin/m4b-tool/src/library/Command/MergeCommand.php(533): M4bTool\Command\MergeCommand->tagMergedFile()
#7 phar:///usr/local/bin/m4b-tool/src/library/Command/MergeCommand.php(424): M4bTool\Command\MergeCommand->processInputFiles()
#8 phar:///usr/local/bin/m4b-tool/src/library/Command/MergeCommand.php(185): M4bTool\Command\MergeCommand->processFiles()
#9 phar:///usr/local/bin/m4b-tool/vendor/symfony/console/Command/Command.php(255): M4bTool\Command\MergeCommand->execute()
#10 phar:///usr/local/bin/m4b-tool/vendor/symfony/console/Application.php(1009): Symfony\Component\Console\Command\Command->run()
#11 phar:///usr/local/bin/m4b-tool/vendor/symfony/console/Application.php(273): Symfony\Component\Console\Application->doRunCommand()
#12 phar:///usr/local/bin/m4b-tool/vendor/symfony/console/Application.php(149): Symfony\Component\Console\Application->doRun()
#13 phar:///usr/local/bin/m4b-tool/bin/m4b-tool.php(52): Symfony\Component\Console\Application->run()
#14 /usr/local/bin/m4b-tool(10): require('...')
#15 {main}
sandreas commented 2 years ago

Ah, thank you for reporting this. Another namespace issue after refactoring a method. Fixed in code and in latest docker. After your confirmation, that it is fixed, I'll publish another dated docker tag.

djdembeck commented 2 years ago

Thanks for the quick response! Your update fixed the error.

sandreas commented 2 years ago

Great, thanks for the feedback. I definitely have to establish some automated acceptance and regression tests :-)