Giter Site home page Giter Site logo

zivavatra / flac2all Goto Github PK

View Code? Open in Web Editor NEW
82.0 82.0 19.0 2.51 MB

A multi-process batch flac converter. For music lovers with large collections :-)

Home Page: http://flac2all.witheredfire.com/

License: GNU General Public License v3.0

Python 96.26% Perl 2.63% Shell 1.11%

flac2all's People

Contributors

benoliver999 avatar graysky2 avatar justin-sleep avatar zivavatra avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

flac2all's Issues

Problem getting TAGs from FLAC file with embedded cover art

What steps will reproduce the problem?
1. Rip a CD using the excellent DBPowerAmp tool, including the cover art
2. Use flac2all v3.48 or older to convert to mp3

We would expect the mp3 file to contain the important flac tags, but they do 
not. They only contain the "genre" tag, because it is set in the code. All 
other tags are empty.

I was able to fix the problem by changing the block in which the metaflac 
command has to look from 2 to 1. It appears that block 2 contains the coverart 
jpg file...

So I replace line 104 in release 48 of the stable code:
flacdata = os.popen("%smetaflac --list --block-number 2 %s" %
with
flacdata = os.popen("%smetaflac --list --block-number 1 %s" %

This solved the problem for me, but I guess this fix will brake functionality 
for files without embedded cover art. So a better fix is required for the 
general public.

What version of the product are you using? On what operating system?
Release 48 (but problem also occurs on v28 and v38)
Ubuntu server 12.04.3 LTS




Original issue reported on code.google.com by [email protected] on 26 Jun 2014 at 10:47

crash after encoding finishes

hi, thanks for this useful tool.

i have a problem though: after encoding is finished, flac2all (installed from the pypi release using pipx install) always crashes. this is the traceback:

UTC~21:31:24: Processing Complete!
UTC~21:31:24: Waiting for all running process to complete.
UTC~21:31:24: Processing run log...
Traceback (most recent call last):
  File "/home/wbolster/.local/bin/flac2all", line 8, in <module>
    sys.exit(main())
  File "/home/wbolster/.local/pipx/venvs/flac2all/lib/python3.8/site-packages/flac2all_pkg/__init__.py", line 440, in main
    threaded_encode()
  File "/home/wbolster/.local/pipx/venvs/flac2all/lib/python3.8/site-packages/flac2all_pkg/multiprocess_encode.py", line 188, in encode
    failures = generate_summary(start_time, end_time, len(files), result_log, opts['outdir'])
TypeError: generate_summary() takes 4 positional arguments but 5 were given

Missing metadata occasionally

What steps will reproduce the problem?

1. using the program with certain (non-compliant?) flac files e.g. 
./flac2all_v3.28.py mp3 flacdir/ -c -o MP3dir
2.
3.

What is the expected output? What do you see instead?

The output files have no tags other than LAME automatic setting the genre tag 
to "Other".

What version of the product are you using? On what operating system?

v3.28 on Debian Wheezy

Please provide any additional information below.

The fix for me was to remove the "--block-number 2" argument to metaflac. It 
doesn't seem to be causing any other problems that I can see.

Here is the metaflac output for 1 affected file:

$ metaflac --list ../Music/Midge\ Marsden/Burning\ Rain/01.\ Burning\ Rain.flac 
METADATA block #0
  type: 0 (STREAMINFO)
  is last: false
  length: 34
  minimum blocksize: 1152 samples
  maximum blocksize: 1152 samples
  minimum framesize: 14 bytes
  maximum framesize: 4555 bytes
  sample_rate: 44100 Hz
  channels: 2
  bits-per-sample: 16
  total samples: 10054212
  MD5 signature: af24d2c3f4afbd0802b723bb4302ed5c
METADATA block #1
  type: 4 (VORBIS_COMMENT)
  is last: false
  length: 219
  vendor string: reference libFLAC 1.2.1 20070917
  comments: 9
    comment[0]: TITLE=Burning Rain
    comment[1]: ARTIST=Midge Marsden
    comment[2]: ALBUM=Burning Rain
    comment[3]: DATE=1991
    comment[4]: TRACKNUMBER=01
    comment[5]: TRACKTOTAL=18
    comment[6]: GENRE=R&B
    comment[7]: METADATAPROVIDER=User
    comment[8]: graphic_front_cover+=
METADATA block #2
  type: 1 (PADDING)
  is last: true
  length: 210

Original issue reported on code.google.com by [email protected] on 24 Sep 2013 at 4:04

Possibility to include input directory as top-level in output directory

Enhancement request.
Right now flac2all copies the directory structure one level under input dir, I 
would like it to also create the top-level directory itself.

When I:
1. Want to copy Artist/Album directory structure with multiple albums, I would 
like it when de Artist directory is created in the output folder, with Album 
directories underneath (with Artist as input dir)
2. Want to copy a single Album directory: create the Album dir, with files in 
it.

I'm no programmer, but this modification of 3.71 seems to work for me.

606c606
<         outdirFinal = opts['outdir'] + os.path.split(current_file_local)[0]

---
>         outdirFinal = opts['outdir'] + os.path.split(opts['dirpath'])[1] + 
os.path.split(current_file_local)[0]

PS. 
Nice tool! Was searching for something like it for a while.

Original issue reported on code.google.com by [email protected] on 4 Mar 2015 at 7:57

decoder.flush() #if there is any data left in the buffer, clear it

I get an exception all the time, the files are fine though:

Exception in thread Thread-118:
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/threading.py", line 808, in __bootstrap_inner
    self.run()
  File "/usr/local/lib/python2.7/threading.py", line 761, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/usr/local/sbin/flac2all", line 595, in encode_thread
    mp3Class.mp3convert(opts['lameopts'],current_file,outfile)
  File "/usr/local/sbin/flac2all", line 509, in mp3convert
    decoder.flush() #if there is any data left in the buffer, clear it
IOError: [Errno 9] Bad file descriptor

This can be fixed by changing

        decoder = os.popen(flacpath + "flac -d -s -c " + shell().parseEscapechars(infile),'rb',1024)
to
        decoder = os.popen(flacpath + "flac -d -s -c " + shell().parseEscapechars(infile),'w+b',1024)

Original issue reported on code.google.com by [email protected] on 8 Feb 2014 at 4:06

When converting to mp3, the lyrics metadata is lost

What steps will reproduce the problem?
1. Convert flac file with lyrics to mp3


What is the expected output? What do you see instead?
Expected output: lyrics present in mp3 file.
Real output: lyrics not present in mp3 file 

What version of the product are you using? On what operating system?
v3.51

Please provide any additional information below.

I added an example file as attachment, but really any flac file with lyrics 
will do as far as I saw with my music.

Original issue reported on code.google.com by [email protected] on 20 Feb 2015 at 6:21

Attachments:

add support for flac --> aac

I think the best aac for linux is NOT faad but neroaacenc available from the 
following link:  http://www.nero.com/eng/technologies-aac-codec.html

Original issue reported on code.google.com by [email protected] on 10 Mar 2012 at 7:19

shell.py: str should be used instead of string

Greetings,

In the latest version 5.1 the copy function is broken due to string being called rather than str in shell.py. This causes flac2all to hang once all music files have been processed. This happens the first time it comes across a file it intends to copy.

The specific error can be seen when trying to copy cover art as it processes it's first album:

UTC~19:52:18: Folder vorbis already exists, reusing...
UTC~19:52:19: We have 1487 flac files to convert
UTC~19:52:19: We have 191 non-flac files to copy across
UTC~19:52:19: Spawning execution process
UTC~19:52:19: Spawning execution process
UTC~19:52:19: Spawning execution process
UTC~19:52:19: Spawning execution process
UTC~19:52:19: Spawning execution process
UTC~19:52:19: Spawning execution process
UTC~19:52:19: Spawning execution process
UTC~19:52:19: Spawning execution process
UTC~19:52:19: Spawning execution process
UTC~19:52:19: Spawning execution process
UTC~19:52:19: Spawning execution process
UTC~19:52:19: Spawning execution process
UTC~19:52:19: Spawning execution process
UTC~19:52:19: Spawning execution process
UTC~19:52:19: Spawning execution process
UTC~19:52:19: Spawning execution process
UTC~19:52:19: Processing:       17-velvet.flac                            target: vorbis   
UTC~19:52:19: Processing:       18-forever-not-yours.flac                 target: vorbis   
UTC~19:52:20: Processing:       19-lifelines.flac                         target: vorbis   
UTC~19:52:20: Processing:       17-here-is-the-news-(elo-style-radio-edit).flac  target: vorbis   
UTC~19:52:20: Processing:       01-prologue.flac                          target: vorbis   
UTC~19:52:20: Processing:       02-the-sun-also-rises.flac                target: vorbis   
UTC~19:52:20: Processing:       03-binary.flac                            target: vorbis   
UTC~19:52:20: Processing:       04-mercury.flac                           target: vorbis   
UTC~19:52:20: Processing:       05-enamel.flac                            target: vorbis   
UTC~19:52:20: Processing:       06-anastasia.flac                         target: vorbis   
UTC~19:52:20: Processing:       07-titan.flac                             target: vorbis   
UTC~19:52:20: Processing:       08-gemini.flac                            target: vorbis   
UTC~19:52:20: Processing:       09-estrella.flac                          target: vorbis   
UTC~19:52:20: Processing:       10-heart-still-beats.flac                 target: vorbis   
UTC~19:52:20: Processing:       12-i-fell-away.flac                       target: vorbis   
UTC~19:52:20: Processing:       11-babies-breath.flac                     target: vorbis   
Traceback (most recent call last):
  File "/bin/flac2all", line 11, in <module>
    load_entry_point('flac2all==5.0', 'console_scripts', 'flac2all')()
  File "/usr/lib/python3.8/site-packages/flac2all_pkg/__init__.py", line 427, in main
    threaded_encode()
  File "/usr/lib/python3.8/site-packages/flac2all_pkg/multiprocess_encode.py", line 128, in encode
    outdir = sh.generateoutdir(srcfile, os.path.join(dest, encformat), srcroot)
  File "/usr/lib/python3.8/site-packages/flac2all_pkg/shell.py", line 45, in generateoutdir
    if (string.find(os.path.split(indir)[0], dirpath) != -1):

Changing line 45 from:

if (string.find(os.path.split(indir)[0], dirpath) != -1):

to:

if (str.find(os.path.split(indir)[0], dirpath) != -1):

fixes flac2all and copy functions as it should.

This was tested on an up-to-date Arch Linux system with the latest package from AUR.

Missing a dependency

I am packaging this for Arch Linux. I took the dependencies from your README but perhaps I missed one? Any thoughts are welcomed.

% flac2all -h
Traceback (most recent call last):
  File "/usr/bin/flac2all", line 11, in <module>
    load_entry_point('flac2all==4.3', 'console_scripts', 'flac2all')()
  File "/usr/lib/python3.8/site-packages/pkg_resources/__init__.py", line 489, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python3.8/site-packages/pkg_resources/__init__.py", line 2852, in load_entry_point
    return ep.load()
  File "/usr/lib/python3.8/site-packages/pkg_resources/__init__.py", line 2443, in load
    return self.resolve()
  File "/usr/lib/python3.8/site-packages/pkg_resources/__init__.py", line 2449, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/usr/lib/python3.8/site-packages/flac2all_pkg/__init__.py", line 32, in <module>
    from shell import shell
ModuleNotFoundError: No module named 'shell'

Conversion Fails if File Contains Dollar Symbol in the Name

The script appears to struggle with files that contain the dollar symbol in 
their name, for example:

 - 3OH!3 feat. Ke$ha - My First Kiss.flac

When flac2all is given a folder that contains a track with this character in 
the name, you get this:

 - ERROR: Cannot open input file "/mnt/store/Music/3OH!3/Streets of Gold/03 3OH!3 feat. Ke - My First Kiss.flac": No such file or directory

Just to confirm, I gave it the folder to process, not that file specifically so 
it won't be an issue with Bash parsing it from the command I gave it.

Original issue reported on code.google.com by [email protected] on 7 Nov 2012 at 10:36

Can not abort with ctrl-c

What steps will reproduce the problem?
1. Start some conversion
2. hit ctrl-c

What is the expected output? What do you see instead?
The program should stop, maybe do some cleanup (delete tmp files or not fully 
converted files). Instead nothing happens (conversion of files continues).  I 
can still kill the program if I hold down ctrl-c for some time.

versions: flac2all 3.71 on Arch Linux 4.0.1

Original issue reported on code.google.com by [email protected] on 6 May 2015 at 1:09

Substitute special characters

I have files with colons (:) and questions marks which are valid on one file 
system but not another (mainly fat/vfat).

It would be great if we could specify a substitute character or characters, eg

-s : - -s ? --

could substitute a colon with a dash and substitute a question mark with 
nothing (-- symbolizes nothing in this case)

If the above makes things too complex then perhaps just a single substitution 
character may be sufficient.

Original issue reported on code.google.com by [email protected] on 7 Feb 2013 at 11:06

Show filename on exception

Not so much because there's an exception (these things happen, I don't care too much) but I would love to know which of the 400 files being converted was the target when the exception occurred on so I can evaluate the situation later.

The exception, for reference:

Exception in thread Thread-50:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
self.run()
File "/usr/lib/python2.7/threading.py", line 754, in run
self.__target(_self.__args, *_self.__kwargs)
File "/root/scriptbin/flac2all.py", line 678, in encode_thread
mp3Class.mp3convert(opts['lameopts'],current_file,outfile)
File "/root/scriptbin/flac2all.py", line 577, in mp3convert
encoder.write(line) #write it to the encoders buffer
IOError: [Errno 32] Broken pipe

Program appears to not terminate after transcoding in opus

I seem to be at a loss with this issue, I've been using this utility for quite a while now when converting my flac files to vorbis and lately I've been experimenting with transcoding my stuff into opus. The program itself runs as it should, it seems, but after it goes through all of the files it just hangs there for hours and never terminates. I've looked at htop to see whether there's something off but to me it seems that the process is just idle and are not doing anything.

These are the options that I used:

./flac2all/flac2all_pkg/init.py opus -o ./outdir/ --opus-options="bitrate 64" ./indir/

I'm also using the issue45 branch of the program but I have also tested this on a separate machine using the version5 branch and both just does this odd behavior.

Any help is appreciated, thanks!

Here are some screenshots of the behavior:
github_2
github_1

Fails if filename contains "hyphen

$ flac2all mp3 ~/Music/flac/downloads/redtopia/Eagles\ -\ On\ The\ Border\ \[1974\]\ \[FLAC\]\ \{7E-1004-2\,\ 243\ 005\}/ -n -l '-replaygain-accurate:V 0' -o ~/Music/mp3/eagles

Flac2all python script, v3 . Copyright 2006-2015 Ziva-Vatra.com.
Licensed under the GPLv3 .
Project website: https://github.com/ZivaVatra/flac2all

    
/bin/sh: line 0: type: opusenc: not found
There are 17 files, of which 10 are convertable FLAC files
We are running 8 simultaneous transcodes
converting file #1 to mp3
converting file #2 to mp3
converting file #4 to mp3
converting file #6 to mp3
converting file #5 to mp3
converting file #7 to mp3
 converting file #8 to mp3

02 - You Never Cry Like A Lover.flac: ERROR initializing decoder
                                      init status = FLAC__STREAM_DECODER_INIT_STATUS_ERROR_OPENING_FILE

An error occurred opening the input file; it is likely that it does not exist
or is not readable.

02 - You Never Cry Like A Lover.flac: ERROR initializing decoder
                                      init status = FLAC__STREAM_DECODER_INIT_STATUS_ERROR_OPENING_FILE

An error occurred opening the input file; it is likely that it does not exist
or is not readable.

10 - The Best Of My Love.flac: ERROR initializing decoder
                               init status = FLAC__STREAM_DECODER_INIT_STATUS_ERROR_OPENING_FILE

An error occurred opening the input file; it is likely that it does not exist
or is not readable.

10 - The Best Of My Love.flac: ERROR initializing decoder
                               init status = FLAC__STREAM_DECODER_INIT_STATUS_ERROR_OPENING_FILE

An error occurred opening the input file; it is likely that it does not exist
or is not readable.

07 - Ol' 55.flac: ERROR initializing decoder
                  init status = FLAC__STREAM_DECODER_INIT_STATUS_ERROR_OPENING_FILE

An error occurred opening the input file; it is likely that it does not exist
or is not readable.

07 - Ol' 55.flac: ERROR initializing decoder
                  init status = FLAC__STREAM_DECODER_INIT_STATUS_ERROR_OPENING_FILE

An error occurred opening the input file; it is likely that it does not exist
or is not readable.

06 - James Dean.flac: ERROR initializing decoder
                      init status = FLAC__STREAM_DECODER_INIT_STATUS_ERROR_OPENING_FILE

An error occurred opening the input file; it is likely that it does not exist
or is not readable.

06 - James Dean.flac: ERROR initializing decoder
                      init status = FLAC__STREAM_DECODER_INIT_STATUS_ERROR_OPENING_FILE

An error occurred opening the input file; it is likely that it does not exist
or is not readable.

03 - Midnight Flyer.flac: ERROR initializing decoder
                          init status = FLAC__STREAM_DECODER_INIT_STATUS_ERROR_OPENING_FILE

An error occurred opening the input file; it is likely that it does not exist
or is not readable.

03 - Midnight Flyer.flac: ERROR initializing decoder
                          init status = FLAC__STREAM_DECODER_INIT_STATUS_ERROR_OPENING_FILE

An error occurred opening the input file; it is likely that it does not exist or is not readable.

04 - My Man.flac: ERROR initializing decoder
                  init status = FLAC__STREAM_DECODER_INIT_STATUS_ERROR_OPENING_FILE

An error occurred opening the input file; it is likely that it does not exist
or is not readable.

04 - My Man.flac: ERROR initializing decoder
                  init status = FLAC__STREAM_DECODER_INIT_STATUS_ERROR_OPENING_FILE

An error occurred opening the input file; it is likely that it does not exist
or is not readable.
Warning: unsupported audio format
Can't init infile '-'

01 - Already Gone.flac: ERROR initializing decoder
                        init status = FLAC__STREAM_DECODER_INIT_STATUS_ERROR_OPENING_FILE

An error occurred opening the input file; it is likely that it does not exist
or is not readable.

01 - Already Gone.flac: ERROR initializing decoder
                        init status = FLAC__STREAM_DECODER_INIT_STATUS_ERROR_OPENING_FILE

An error occurred opening the input file; it is likely that it does not exist
or is not readable.
Warning: unsupported audio format
Can't init infile '-'
Warning: unsupported audio format
Can't init infile '-'
Warning: unsupported audio format
Can't init infile '-'
Warning: unsupported audio format
Can't init infile '-'
Warning: unsupported audio format
Can't init infile '-'
Warning: unsupported audio format
Can't init infile '-'
converting file #11 to mp3
converting file #12 to mp3
converting file #13 to mp3

05 - On The Border.flac: ERROR initializing decoder
                         init status = FLAC__STREAM_DECODER_INIT_STATUS_ERROR_OPENING_FILE

An error occurred opening the input file; it is likely that it does not exist
or is not readable.

05 - On The Border.flac: ERROR initializing decoder
                         init status = FLAC__STREAM_DECODER_INIT_STATUS_ERROR_OPENING_FILE

An error occurred opening the input file; it is likely that it does not exist
or is not readable.

09 - Good Day In Hell.flac: ERROR initializing decoder
                            init status = FLAC__STREAM_DECODER_INIT_STATUS_ERROR_OPENING_FILE

An error occurred opening the input file; it is likely that it does not exist
or is not readable.

09 - Good Day In Hell.flac: ERROR initializing decoder
                            init status = FLAC__STREAM_DECODER_INIT_STATUS_ERROR_OPENING_FILE

An error occurred opening the input file; it is likely that it does not exist
or is not readable.

08 - Is It True.flac: ERROR initializing decoder
                      init status = FLAC__STREAM_DECODER_INIT_STATUS_ERROR_OPENING_FILE

An error occurred opening the input file; it is likely that it does not exist
or is not readable.

08 - Is It True.flac: ERROR initializing decoder
                      init status = FLAC__STREAM_DECODER_INIT_STATUS_ERROR_OPENING_FILE

An error occurred opening the input file; it is likely that it does not exist
or is not readable.
Warning: unsupported audio format
Can't init infile '-'
Warning: unsupported audio format
Can't init infile '-'
Warning: unsupported audio format
Can't init infile '-'

Track titles truncated at the first colon

What steps will reproduce the problem?

1. using the program with flac files that have a : in the track title e.g. 
./flac2all_v3.28.py mp3 flacdir/ -c -o MP3dir
2.
3.

What is the expected output? What do you see instead?

Track titles truncated at the first colon

What version of the product are you using? On what operating system?

v3.28 on Debian Wheezy

Please provide any additional information below.

The fix is in getflacmeta, by replacing:

     datalist.append(string.split(data,":"))
with
     datalist.append(string.split(data,":",1))

This will ensure the comment data parser only splits off up to the first colon. 
Check out the track title in this metaflac dump, where the MP3 file title ended 
up being "4" instead of "4:39am ...."

$ metaflac --list ../Music/Roger\ Waters/The\ Pros\ and\ Cons\ of\ Hitch\ 
Hiking/04.\ 4\:39am\ \(For\ The\ First\ Time\ Today\,\ Part\ 2\).flac 
METADATA block #0
  type: 0 (STREAMINFO)
  is last: false
  length: 34
  minimum blocksize: 4608 samples
  maximum blocksize: 4608 samples
  minimum framesize: 6453 bytes
  maximum framesize: 15346 bytes
  sample_rate: 44100 Hz
  channels: 2
  bits-per-sample: 16
  total samples: 5404896
  MD5 signature: f1bbdeb84c6991f240cf2e22df51a40e
METADATA block #1
  type: 3 (SEEKTABLE)
  is last: false
  length: 216
  seek points: 12
    point 0: sample_number=0, stream_offset=0, frame_samples=4608
    point 1: sample_number=446976, stream_offset=836197, frame_samples=4608
    point 2: sample_number=898560, stream_offset=1635784, frame_samples=4608
    point 3: sample_number=1350144, stream_offset=2647529, frame_samples=4608
    point 4: sample_number=1797120, stream_offset=3856226, frame_samples=4608
    point 5: sample_number=2248704, stream_offset=4978619, frame_samples=4608
    point 6: sample_number=2700288, stream_offset=6210121, frame_samples=4608
    point 7: sample_number=3151872, stream_offset=7483671, frame_samples=4608
    point 8: sample_number=3598848, stream_offset=8439309, frame_samples=4608
    point 9: sample_number=4050432, stream_offset=9423708, frame_samples=4608
    point 10: sample_number=4502016, stream_offset=10441031, frame_samples=4608
    point 11: sample_number=4953600, stream_offset=11447905, frame_samples=4608
METADATA block #2
  type: 4 (VORBIS_COMMENT)
  is last: false
  length: 225
  vendor string: reference libFLAC 1.1.2 20050205
  comments: 7
    comment[0]: TITLE=4:39am (For The First Time Today, Part 2)
    comment[1]: ARTIST=Roger Waters
    comment[2]: ALBUM=The Pros and Cons of Hitch Hiking
    comment[3]: DATE=1983
    comment[4]: TRACKNUMBER=04
    comment[5]: TRACKTOTAL=12
    comment[6]: GENRE=Soundtrack
METADATA block #3
  type: 1 (PADDING)
  is last: true
  length: 4078

Great program BTW! Very useful for making MP3s for the car stereo.


Original issue reported on code.google.com by [email protected] on 24 Sep 2013 at 4:12

Cannot set number of threads

I am trying to use less parallel threads than the reported number of 
hyperthreads on my computer. Therefore, I call flac2all like this:

>python ~/Downloads/flac2all_v3.38.py vorbis . --outdir=../ogg --threads=3

My python version is 2.7 (Ubuntu 12.04). The command crashes and the output is:

==========
Flac2all python script, v3 . Copyright 2006-2012 Ziva-Vatra.com.
Licensed under the GPLv2 (http://www.ziva-vatra.com).
Project website: http://code.google.com/p/flac2all/


There are 4048 files, of which 4004 are convertable FLAC files
Traceback (most recent call last):
  File "~/Downloads/flac2all_v3.38.py", line 758, in <module>
    print "We are running %d simultaneous transcodes" % (opts['threads'])
TypeError: %d format: a number is required, not str
==========

I replaced "%d" by "%s" and it works now. But I am not a python person, so I 
can't suggest a real fix.

Original issue reported on code.google.com by [email protected] on 2 Feb 2014 at 7:28

cannot work without opusenc

Without installing opus-tools from my Arch Repository, flac2all will produce the following error

/bin/sh: line 0: type: opusenc: not found
sh: opusenc: command not found
Traceback (most recent call last):
File "/usr/bin/flac2all", line 834, in
opusClass = opus()
File "/usr/bin/flac2all", line 109, in init
data = re.search("\d.\d.\d",data).group(0)
AttributeError: 'NoneType' object has no attribute 'group'

I listed it as a problem on the forums and was told to let you know
https://bbs.archlinux.org/viewtopic.php?id=206993
Hope this was useful. It works once I install the package.
Thank you for your work, I enjoy using your script 👍

thread limit with -t does not recognize number

What steps will reproduce the problem?
1. flac2all -t 8

What is the expected output?
There are 19 files, of which 17 are convertable FLAC files
We are running 8 simultaneous transcodes

What do you see instead?
There are 19 files, of which 17 are convertable FLAC files
Traceback (most recent call last):
  File "flac2all_v3.38.py", line 758, in <module>
    print "We are running %d simultaneous transcodes" % opts['threads']
TypeError: %d format: a number is required, not str

What version of the product are you using? On what operating system?
3.38 from google code 

Please provide any additional information below.
see attached patch 

Original issue reported on code.google.com by [email protected] on 11 Dec 2014 at 10:21

  • Merged into: #10

Attachments:

Both master and version5 branch fail on Mac Catalina

Neither the build from master or the origin/version5 branch will run on my Mac running Catalina 10.15.7. It looks like the code is using a python feature (_sem._semlock._get_value()) that isn't implemented on the Mac. The same command line works fine on a Linux system.

Here's the command I am using and the stacktrace.

> flac2all mp3 -n d -o DISC\ 1 DISC\ 1
UTC~00:31:49: Folder mp3 already exists, reusing...
UTC~00:31:50: We have 0 flac files to convert
Traceback (most recent call last):
  File "/usr/local/bin/flac2all", line 33, in <module>
    sys.exit(load_entry_point('flac2all==5.5', 'console_scripts', 'flac2all')())
  File "/usr/local/lib/python3.9/site-packages/flac2all_pkg/__init__.py", line 440, in main
    threaded_encode()
  File "/usr/local/lib/python3.9/site-packages/flac2all_pkg/multiprocess_encode.py", line 98, in encode
    log.info("We have %d non-flac files to copy across" % cQ.qsize())
  File "/usr/local/Cellar/[email protected]/3.9.1_3/Frameworks/Python.framework/Versions/3.9/lib/python3.9/multiprocessing/queues.py", line 126, in qsize
    return self._maxsize - self._sem._semlock._get_value()
NotImplementedError

I found a workaround for a different package, but I didn't have time to dive in your queue code to see if it can be done here...
keras-team/autokeras#368

Tagging problem with files with unsupported genre

What steps will reproduce the problem?
1. Try to convert flac files with unsupported genre to mp3


What is the expected output? What do you see instead?
Expected: Flac file converted to mp3 with correct tagging (and "Other" for the 
genre when it was not supported)
What happens:The flac files with unsupported genre are not tagged properly, all 
fields are set to "unknown", except for genre, which is set to "Other".

What version of the product are you using? On what operating system?
3.38 on Ubuntu 14.04

Please provide any additional information below.

Original issue reported on code.google.com by [email protected] on 9 Oct 2014 at 4:38

  • Merged into: #14

Errors on invoking latest version

% flac2all vorbis,mp3,test --vorbis-options='quality=2' -o ./fromFlac ./files
Traceback (most recent call last):
  File "/usr/bin/flac2all", line 33, in <module>
    sys.exit(load_entry_point('flac2all==5.5', 'console_scripts', 'flac2all')())
  File "/usr/lib/python3.9/site-packages/flac2all_pkg/__init__.py", line 439, in main
    clustered_encode(localworkers=True)
  File "/usr/lib/python3.9/site-packages/flac2all_pkg/__init__.py", line 101, in clustered_encode
    tsock.bind("tcp://*:2019")
  File "/usr/lib/python3.9/site-packages/zmq/sugar/socket.py", line 208, in bind
    super().bind(addr)
  File "zmq/backend/cython/socket.pyx", line 540, in zmq.backend.cython.socket.Socket.bind
  File "zmq/backend/cython/checkrc.pxd", line 28, in zmq.backend.cython.checkrc._check_rc
zmq.error.ZMQError: Address already in use

Or just:

% flac2all f:libfdk_aac .  
Traceback (most recent call last):
  File "/usr/bin/flac2all", line 33, in <module>
    sys.exit(load_entry_point('flac2all==5.5', 'console_scripts', 'flac2all')())
  File "/usr/lib/python3.9/site-packages/flac2all_pkg/__init__.py", line 439, in main
    clustered_encode(localworkers=True)
  File "/usr/lib/python3.9/site-packages/flac2all_pkg/__init__.py", line 101, in clustered_encode
    tsock.bind("tcp://*:2019")
  File "/usr/lib/python3.9/site-packages/zmq/sugar/socket.py", line 208, in bind
    super().bind(addr)
  File "zmq/backend/cython/socket.pyx", line 540, in zmq.backend.cython.socket.Socket.bind
  File "zmq/backend/cython/checkrc.pxd", line 28, in zmq.backend.cython.checkrc._check_rc
zmq.error.ZMQError: Address already in use

Skipping does not work if mode name does not equal file extension

The check for existing file endings does not seem to work correctly in all cases. If I run the script with "vorbis" as an encoder mode, it does not skip existing files. Specifically, the line

if os.path.exists(outfile + "." + mode):

seems to be the culprit, as it will look for "filename.vorbis" instead of "filename.ogg".

Overwrite if source file changes

This tool is great for making a smaller (more portable) mirror of my flac files! I recently fixed up a bunch of tags in some of my source files, which flac2all hasn't copied over to my ogg mirror. I was wondering if you could add an option to overwrite the outfile if source mtime is newer than outfile mtime in order to to detect changes?

Exception with opus conversion

Exception in thread Thread 4:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/site-packages/flac2all_pkg/__init__.py", line 112, in run
    encoder = opus(opts['opusencopts'])
  File "/usr/lib/python2.7/site-packages/flac2all_pkg/opus.py", line 30, in __init__
    data = re.search("\d\.\d\.\d", data).group(0)
AttributeError: 'NoneType' object has no attribute 'group'

opusenc version

opusenc opus-tools 0.2 (using libopus 1.3)
Copyright (C) 2008-2018 Xiph.Org Foundation

-n option is broken

Using -n gives

Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 763, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/usr/bin/flac2all", line 542, in encode_thread
    outfile = os.path.join(outdirFinal,os.path.split(current_file_local)[1])
UnboundLocalError: local variable 'outdirFinal' referenced before assignment

Original issue reported on code.google.com by [email protected] on 17 Dec 2013 at 9:03

The -t option doesn't work

Run flac2all (v3.38) with the option -t1

Traceback (most recent call last):
  File "./flac2all_v3.38.py", line 758, in <module>
    print "We are running %d simultaneous transcodes" % opts['threads']
TypeError: %d format: a number is required, not str

Add this line to fix it:

opts['threads'] = int(opts['threads'])

Original issue reported on code.google.com by [email protected] on 23 Feb 2014 at 6:08

  • Merged into: #10

multiprocess_encode() calls generate_summary() in core with wrong number of arguments

UTC~01:41:29: Processing Complete!                                         
UTC~01:41:29: Waiting for all running process to complete.                  
UTC~01:41:29: Processing run log...                                               
Traceback (most recent call last):                                                
  File "/home/user/.pyenv/versions/3-8-3/bin/flac2all", line 11, in <module>       
    load_entry_point('flac2all==5.1', 'console_scripts', 'flac2all')()            
  File "/home/user/.pyenv/versions/3.8.3/envs/3-8-3/lib/python3.8/site-packages/flac2all-5.1-py3.8.egg/flac2all_pkg/__init__.py", line 440, in main
    threaded_encode()                                                                                         
  File "/home/user/.pyenv/versions/3.8.3/envs/3-8-3/lib/python3.8/site-packages/flac2all-5.1-py3.8.egg/flac2all_pkg/multiprocess_encode.py", line 188, in encod
e                                                                                                                   
    failures = generate_summary(start_time, end_time, len(files), result_log, opts['outdir'])                       
TypeError: generate_summary() takes 4 positional arguments but 5 were given                                         

Command executed was flac2all mp3 -t 8 -o ./mp3_tracks ./

Copy non-flac files option does not check if non-flac file already exists

What steps will reproduce the problem?
1. Run flac2all on input directory with flac and non-flac files, with copy 
option, ala "./flac2all.py vorbis Library -c -v ... -o Portable".
2. Repeat step 1.

What is the expected output? What do you see instead?
flac2all will skip copying/converting files that have already been converted 
from flac, but will re-copy and overwrite originally non-flac files. On large 
input folders this wastes significant time and I/O.

What version of the product are you using? On what operating system?
v3.71 on Linux.

Please provide any additional information below.
An option flag to change this behaviour is fine if people want it that way. Or 
maybe a file hash check to detect differences would be preferable?

Original issue reported on code.google.com by [email protected] on 25 Mar 2015 at 10:00

Package not installable via pip3

The current flac2all package is not installable via pip3 and yields the following output:

$ pip3 install --user flac2all
Collecting flac2all
  Using cached https://files.pythonhosted.org/packages/93/9e/246405a84106f7d5073388d83c3cf65e95298379c56082ec181a5c18313e/flac2all-4.3.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-build-rm5nnfdn/flac2all/setup.py", line 17, in <module>
        with open("./flac2all_pkg/version", 'r') as fd:
    FileNotFoundError: [Errno 2] No such file or directory: './flac2all_pkg/version'

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-rm5nnfdn/flac2all/

flac tags are not copied when in metadata block 1

What steps will reproduce the problem?
1. try to convert a flac file with tags in metadata block 1
2.
3.

What is the expected output? What do you see instead?
tags present in metadata block 1 should be copied in mp3 file

What version of the product are you using? On what operating system?
v3.38.py on fedora 19

Please provide any additional information below.
example of flac file with data on metadata block 1

[bernard@localhost Test]$ metaflac --list "01 - Track 1.flac" 
METADATA block #0
  type: 0 (STREAMINFO)
  is last: false
  length: 34
  minimum blocksize: 4608 samples
  maximum blocksize: 4608 samples
  minimum framesize: 14 bytes
  maximum framesize: 10943 bytes
  sample_rate: 44100 Hz
  channels: 2
  bits-per-sample: 16
  total samples: 24784200
  MD5 signature: 7d12bc221cef253fbfd9e750e5c75486
METADATA block #1
  type: 4 (VORBIS_COMMENT)
  is last: false
  length: 568
  vendor string: GStreamer encoded vorbiscomment
  comments: 16
    comment[0]: playcount:[email protected]=2
    comment[1]: compilation=0
    comment[2]: musicbrainz_discid=ZYzLf7n1gb9dJs3TbhvooCODBQk-
    comment[3]: genre=Classical
    comment[4]: replaygain_track_peak=0.000000
    comment[5]: album=Daniel Barenboim 50 years of performance
    comment[6]: replaygain_album_gain=0.000000
    comment[7]: discid=8310af09
    comment[8]: title=Piano Sonata No.8 "Pathétique" Grave: Allegro di molto e con brio
    comment[9]: artist=Ludwig Van Beethoven
    comment[10]: replaygain_track_gain=0.000000
    comment[11]: artistsort=Beethoven Ludwig Van
    comment[12]: replaygain_album_peak=0.000000
    comment[13]: tracknumber=1
    comment[14]: tracktotal=9
    comment[15]: discnumber=2
METADATA block #2
  type: 1 (PADDING)
  is last: true
  length: 4016

Original issue reported on code.google.com by [email protected] on 24 Jun 2014 at 9:17

  • Merged into: #14

script bombs if opusenc isn't installed

What steps will reproduce the problem?
1. run flac2all without opusenc 
2.
3.

What is the expected output? What do you see instead?

% flac2all mp3 -l V4 "/mp3/blues/bb_king/B.B. King - Live At The Regal (1965) 
[SACD] (2011 SHM-SACD PCM Stereo)"

Flac2all python script, v3 . Copyright 2006-2015 Ziva-Vatra.com.
Licensed under the GPLv3 .
Project website: http://code.google.com/p/flac2all/


Traceback (most recent call last):
  File "/data/home/danno/bin/flac2all", line 811, in <module>
    opusClass = opus()
  File "/data/home/danno/bin/flac2all", line 99, in __init__
    data = re.search("\d\.\d\.\d",data).group(0)
AttributeError: 'NoneType' object has no attribute 'group'


What version of the product are you using? On what operating system?

downloaded august 1 2015.  running on centos6. 

Please provide any additional information below.

I tried faking it with a one-liner shell script so opusenc would at least exist 
- no luck, same crash.  

Everything works fine once I comment out all the "opus" stuff in the script.   

thanks for making this available.  keeping up with all the metadata options was 
a pain in the ass.

Original issue reported on code.google.com by [email protected] on 1 Aug 2015 at 6:43

If I enable to copy non flac files, the program copies over my .sync folder and ruins my btsync share

What steps will reproduce the problem?
1. Enable to copy non flac files
2. Have two btsync shares running both on the flac and the converted media 
folder
3. The program then copies the .sync folder and ruins the share

Would it be possible for you to just to make it possible to define the 
extensions that we want to have copied? For example, only copy .jpg files 
(covers), so it does not mess with non-music related folders?

Original issue reported on code.google.com by [email protected] on 19 Jan 2015 at 6:00

Crash for comments with a name but no value

I ran into an issue where flac2all is crashing on some flac files where the comments have a name but no value. It looks like the issue in this case is a UFID tag that is missing a '=' sign (see comment 13 below). I'm assuming this is a badly tagged file, but flac2all should probably attempt to handle this rather than dump a stacktrace.

  comments: 14
    comment[0]: album=FAIRY TAIL ORIGINAL SOUND COLLECTION [Disc 1]
    comment[1]: ALBUMARTIST=Yasuharu Takanashi
    comment[2]: artist=Yasuharu Takanashi
    comment[3]: date=2015
    comment[4]: discnumber=1
    comment[5]: Encoding Params=vers
    comment[6]: genre=Soundtrack
    comment[7]: iTunes_CDDB_IDs=22++
    comment[8]: tempo=00000 BPM
    comment[9]: title=FAIRY TAIL Main Theme 2014
    comment[10]: DISCTOTAL=2
    comment[11]: TRACKTOTAL=22
    comment[12]: tracknumber=1
    comment[13]: UFIDhttp://www.cddb.com/id3/taginfo1.html=3CD3N30Q524865463V5808B951FEAA8BFAD5602311A264C49335P1

Here's a stacktrace:

Traceback (most recent call last):
  File "/usr/lib/python3.8/multiprocessing/process.py", line 315, in _bootstrap
    self.run()
  File "/usr/lib/python3.8/multiprocessing/process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/local/lib/python3.8/dist-packages/flac2all-5.5-py3.8.egg/flac2all_pkg/flac2all_worker.py", line 44, in worker_process
    sys.exit(eworker.run())
  File "/usr/local/lib/python3.8/dist-packages/flac2all-5.5-py3.8.egg/flac2all_pkg/core.py", line 404, in run
    raise(e)
  File "/usr/local/lib/python3.8/dist-packages/flac2all-5.5-py3.8.egg/flac2all_pkg/core.py", line 394, in run
    result = self.encode(infile, mode, opts)
  File "/usr/local/lib/python3.8/dist-packages/flac2all-5.5-py3.8.egg/flac2all_pkg/core.py", line 317, in encode
    return encf(infile, outfile)
  File "/usr/local/lib/python3.8/dist-packages/flac2all-5.5-py3.8.egg/flac2all_pkg/mp3.py", line 83, in convert
    inmetadata = flac().getflacmeta(infile)
  File "/usr/local/lib/python3.8/dist-packages/flac2all-5.5-py3.8.egg/flac2all_pkg/flac.py", line 123, in getflacmeta
    comment[1] = comment[1].strip()
IndexError: list index out of range

I threw a quick workaround in place so I could convert files (this is against the origin/version5 branch):

diff --git a/flac2all_pkg/flac.py b/flac2all_pkg/flac.py
index 1b0a805..66414dd 100644
--- a/flac2all_pkg/flac.py
+++ b/flac2all_pkg/flac.py
@@ -117,7 +117,10 @@ class flac(object):
                        # split according to [NAME]=[VALUE] structure
                        comment = data[1].split('=')
                        comment[0] = comment[0].strip()
-                       comment[1] = comment[1].strip()
+                       if len(comment) > 1:
+                               comment[1] = comment[1].strip()
+                       else:
+                               comment.append("")

                        # convert to upper case
                        # we want the key values to always be the same case, we decided on

possible to specify output dir without codec name?

Hi, This is an excellent tool by the way:

I am running:
flac2all opus -o outdir MusDir

currently, it creates outdir/opus and puts all the files in there, with no way to change that subdirectory path or way to opt out. Would it be possible to have an option to suppress the automatic codec dir creation? so that the music would go straight to outdir. with multiple codecs they could all be mixed. obviously the current behavior should be the default, but i would like to have this as an option. thanks.

It seems like nodirs is supposed to do this, but the option doesn't look like it does anything. Was it perhaps overlooked?

Fails to copy non-flac files

When pointing flac2all at a directory that contains a mix of flac and mp3 files, the flac files are converted but the existing mp3 files are not copied.

$ flac2all mp3 ~/tmp/mix -o ~/tmp/mp3 -c

It looks like flac2all will only attempt to copy files destination file exists and the -f flag isn't used. The second condition makes sense, but the first does not. If the destination file already existed, I wouldn't need flac2all to copy it over!

Support for ID3v2 with LAME

At the moment flac2all does not like genres that don't map to ID3v1 genre IDs when converting to MP3. Couldn't ID3v2 support solve htis?

Ubuntu 18.04 - not sure what's up?

I'm having a rough time getting anything going with flac2all in Ubuntu 18.04.

I have albums of .flac files made by whipper, I have setup a python3 venv to run flac2all in, I'm trying to transcode to mp3 with the command: flac2all mp3 --lame-options='v b 192' . , but I get the following results, and I'm not sure where to go from here:

(flac2all_env) mike@NUC7i5Upstairs:~/output/album/R.E.M. - Automatic for the People$ flac2all mp3 --lame-options='v b 192' .
UTC~15:29:09: We have 12 flac files to convert
UTC~15:29:09: We have 0 non-flac files to copy across
UTC~15:29:09: Spawning execution process
UTC~15:29:09: Spawning execution process
UTC~15:29:09: Processing: 	02. R.E.M. - Try Not to Breathe.flac      target: mp3      
UTC~15:29:09: Spawning execution process
UTC~15:29:09: Processing: 	06. R.E.M. - Sweetness Follows.flac       target: mp3      
UTC~15:29:09: Spawning execution process
UTC~15:29:09: Processing: 	03. R.E.M. - The Sidewinder Sleeps Tonite.flac  target: mp3      
UTC~15:29:09: Processing: 	10. R.E.M. - Man on the Moon.flac         target: mp3      
Exception in thread Thread 4:
Traceback (most recent call last):
  File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner
    self.run()
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/core.py", line 402, in run
    self.logq.put(self.encode(infile, mode, self.opts), timeout=10)
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/core.py", line 287, in encode
    return encf(infile, outfile)
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/mp3.py", line 88, in convert
    inmetadata = flac().getflacmeta(infile)
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/flac.py", line 98, in getflacmeta
    flacfile
  File "/usr/lib/python3.6/subprocess.py", line 356, in check_output
    **kwargs).stdout
  File "/usr/lib/python3.6/subprocess.py", line 423, in run
    with Popen(*popenargs, **kwargs) as process:
  File "/usr/lib/python3.6/subprocess.py", line 729, in __init__
    restore_signals, start_new_session)
  File "/usr/lib/python3.6/subprocess.py", line 1364, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'metaflac': 'metaflac'
Exception in thread Thread 4:
Traceback (most recent call last):
  File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner
    self.run()
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/core.py", line 402, in run
    self.logq.put(self.encode(infile, mode, self.opts), timeout=10)
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/core.py", line 287, in encode
    return encf(infile, outfile)
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/mp3.py", line 88, in convert
    inmetadata = flac().getflacmeta(infile)
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/flac.py", line 98, in getflacmeta
    flacfile
  File "/usr/lib/python3.6/subprocess.py", line 356, in check_output
    **kwargs).stdout
  File "/usr/lib/python3.6/subprocess.py", line 423, in run
    with Popen(*popenargs, **kwargs) as process:
  File "/usr/lib/python3.6/subprocess.py", line 729, in __init__
    restore_signals, start_new_session)
  File "/usr/lib/python3.6/subprocess.py", line 1364, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'metaflac': 'metaflac'
Exception in thread Thread 4:
Traceback (most recent call last):
  File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner
    self.run()
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/core.py", line 402, in run
    self.logq.put(self.encode(infile, mode, self.opts), timeout=10)
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/core.py", line 287, in encode
    return encf(infile, outfile)
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/mp3.py", line 88, in convert
    inmetadata = flac().getflacmeta(infile)
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/flac.py", line 98, in getflacmeta
    flacfile
  File "/usr/lib/python3.6/subprocess.py", line 356, in check_output
    **kwargs).stdout
  File "/usr/lib/python3.6/subprocess.py", line 423, in run
    with Popen(*popenargs, **kwargs) as process:
  File "/usr/lib/python3.6/subprocess.py", line 729, in __init__
    restore_signals, start_new_session)
  File "/usr/lib/python3.6/subprocess.py", line 1364, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'metaflac': 'metaflac'



Exception in thread Thread 4:
Traceback (most recent call last):
  File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner
    self.run()
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/core.py", line 402, in run
    self.logq.put(self.encode(infile, mode, self.opts), timeout=10)
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/core.py", line 287, in encode
    return encf(infile, outfile)
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/mp3.py", line 88, in convert
    inmetadata = flac().getflacmeta(infile)
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/flac.py", line 98, in getflacmeta
    flacfile
  File "/usr/lib/python3.6/subprocess.py", line 356, in check_output
    **kwargs).stdout
  File "/usr/lib/python3.6/subprocess.py", line 423, in run
    with Popen(*popenargs, **kwargs) as process:
  File "/usr/lib/python3.6/subprocess.py", line 729, in __init__
    restore_signals, start_new_session)
  File "/usr/lib/python3.6/subprocess.py", line 1364, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'metaflac': 'metaflac'

UTC~15:29:20: Spawning execution process
UTC~15:29:20: Spawning execution process
UTC~15:29:20: Spawning execution process
UTC~15:29:20: Spawning execution process
UTC~15:29:20: Processing: 	08. R.E.M. - Ignoreland.flac              target: mp3      
UTC~15:29:20: Processing: 	12. R.E.M. - Find the River.flac          target: mp3      
UTC~15:29:20: Processing: 	04. R.E.M. - Everybody Hurts.flac         target: mp3      
UTC~15:29:20: Processing: 	07. R.E.M. - Monty Got a Raw Deal.flac    target: mp3      
Exception in thread Thread 4:
Traceback (most recent call last):
  File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner
    self.run()
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/core.py", line 402, in run
    self.logq.put(self.encode(infile, mode, self.opts), timeout=10)
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/core.py", line 287, in encode
    return encf(infile, outfile)
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/mp3.py", line 88, in convert
    inmetadata = flac().getflacmeta(infile)
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/flac.py", line 98, in getflacmeta
    flacfile
  File "/usr/lib/python3.6/subprocess.py", line 356, in check_output
    **kwargs).stdout
  File "/usr/lib/python3.6/subprocess.py", line 423, in run
    with Popen(*popenargs, **kwargs) as process:
  File "/usr/lib/python3.6/subprocess.py", line 729, in __init__
    restore_signals, start_new_session)
  File "/usr/lib/python3.6/subprocess.py", line 1364, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'metaflac': 'metaflac'

Exception in thread Thread 4:
Traceback (most recent call last):
  File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner
    self.run()
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/core.py", line 402, in run
    self.logq.put(self.encode(infile, mode, self.opts), timeout=10)
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/core.py", line 287, in encode
    return encf(infile, outfile)
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/mp3.py", line 88, in convert
    inmetadata = flac().getflacmeta(infile)
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/flac.py", line 98, in getflacmeta
    flacfile
  File "/usr/lib/python3.6/subprocess.py", line 356, in check_output
    **kwargs).stdout
  File "/usr/lib/python3.6/subprocess.py", line 423, in run
    with Popen(*popenargs, **kwargs) as process:
  File "/usr/lib/python3.6/subprocess.py", line 729, in __init__
    restore_signals, start_new_session)
  File "/usr/lib/python3.6/subprocess.py", line 1364, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'metaflac': 'metaflac'
Exception in thread Thread 4:
Traceback (most recent call last):
  File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner
    self.run()
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/core.py", line 402, in run
    self.logq.put(self.encode(infile, mode, self.opts), timeout=10)
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/core.py", line 287, in encode
    return encf(infile, outfile)
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/mp3.py", line 88, in convert
    inmetadata = flac().getflacmeta(infile)
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/flac.py", line 98, in getflacmeta
    flacfile
  File "/usr/lib/python3.6/subprocess.py", line 356, in check_output
    **kwargs).stdout
  File "/usr/lib/python3.6/subprocess.py", line 423, in run
    with Popen(*popenargs, **kwargs) as process:
  File "/usr/lib/python3.6/subprocess.py", line 729, in __init__
    restore_signals, start_new_session)
  File "/usr/lib/python3.6/subprocess.py", line 1364, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'metaflac': 'metaflac'


Exception in thread Thread 4:
Traceback (most recent call last):
  File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner
    self.run()
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/core.py", line 402, in run
    self.logq.put(self.encode(infile, mode, self.opts), timeout=10)
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/core.py", line 287, in encode
    return encf(infile, outfile)
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/mp3.py", line 88, in convert
    inmetadata = flac().getflacmeta(infile)
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/flac.py", line 98, in getflacmeta
    flacfile
  File "/usr/lib/python3.6/subprocess.py", line 356, in check_output
    **kwargs).stdout
  File "/usr/lib/python3.6/subprocess.py", line 423, in run
    with Popen(*popenargs, **kwargs) as process:
  File "/usr/lib/python3.6/subprocess.py", line 729, in __init__
    restore_signals, start_new_session)
  File "/usr/lib/python3.6/subprocess.py", line 1364, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'metaflac': 'metaflac'

UTC~15:29:30: Spawning execution process
UTC~15:29:30: Spawning execution process
UTC~15:29:30: Spawning execution process
UTC~15:29:30: Spawning execution process
UTC~15:29:30: Processing: 	11. R.E.M. - Nightswimming.flac           target: mp3      
UTC~15:29:30: Processing: 	09. R.E.M. - Star Me Kitten.flac          target: mp3      
UTC~15:29:30: Processing: 	05. R.E.M. - New Orleans Instrumental No. 1.flac  target: mp3      
Exception in thread Thread 4:
Traceback (most recent call last):
  File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner
    self.run()
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/core.py", line 402, in run
    self.logq.put(self.encode(infile, mode, self.opts), timeout=10)
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/core.py", line 287, in encode
    return encf(infile, outfile)
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/mp3.py", line 88, in convert
    inmetadata = flac().getflacmeta(infile)
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/flac.py", line 98, in getflacmeta
    flacfile
  File "/usr/lib/python3.6/subprocess.py", line 356, in check_output
    **kwargs).stdout
  File "/usr/lib/python3.6/subprocess.py", line 423, in run
    with Popen(*popenargs, **kwargs) as process:
  File "/usr/lib/python3.6/subprocess.py", line 729, in __init__
    restore_signals, start_new_session)
  File "/usr/lib/python3.6/subprocess.py", line 1364, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'metaflac': 'metaflac'
UTC~15:29:30: Processing: 	01. R.E.M. - Drive.flac                   target: mp3      

Exception in thread Thread 4:
Traceback (most recent call last):
  File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner
    self.run()
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/core.py", line 402, in run
    self.logq.put(self.encode(infile, mode, self.opts), timeout=10)
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/core.py", line 287, in encode
    return encf(infile, outfile)
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/mp3.py", line 88, in convert
    inmetadata = flac().getflacmeta(infile)
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/flac.py", line 98, in getflacmeta
    flacfile
  File "/usr/lib/python3.6/subprocess.py", line 356, in check_output
    **kwargs).stdout
  File "/usr/lib/python3.6/subprocess.py", line 423, in run
    with Popen(*popenargs, **kwargs) as process:
  File "/usr/lib/python3.6/subprocess.py", line 729, in __init__
    restore_signals, start_new_session)
  File "/usr/lib/python3.6/subprocess.py", line 1364, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'metaflac': 'metaflac'

Exception in thread Thread 4:
Traceback (most recent call last):
  File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner
    self.run()
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/core.py", line 402, in run
    self.logq.put(self.encode(infile, mode, self.opts), timeout=10)
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/core.py", line 287, in encode
    return encf(infile, outfile)
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/mp3.py", line 88, in convert
    inmetadata = flac().getflacmeta(infile)
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/flac.py", line 98, in getflacmeta
    flacfile
  File "/usr/lib/python3.6/subprocess.py", line 356, in check_output
    **kwargs).stdout
  File "/usr/lib/python3.6/subprocess.py", line 423, in run
    with Popen(*popenargs, **kwargs) as process:
  File "/usr/lib/python3.6/subprocess.py", line 729, in __init__
    restore_signals, start_new_session)
  File "/usr/lib/python3.6/subprocess.py", line 1364, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'metaflac': 'metaflac'
Exception in thread Thread 4:
Traceback (most recent call last):
  File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner
    self.run()
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/core.py", line 402, in run
    self.logq.put(self.encode(infile, mode, self.opts), timeout=10)
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/core.py", line 287, in encode
    return encf(infile, outfile)
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/mp3.py", line 88, in convert
    inmetadata = flac().getflacmeta(infile)
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/flac.py", line 98, in getflacmeta
    flacfile
  File "/usr/lib/python3.6/subprocess.py", line 356, in check_output
    **kwargs).stdout
  File "/usr/lib/python3.6/subprocess.py", line 423, in run
    with Popen(*popenargs, **kwargs) as process:
  File "/usr/lib/python3.6/subprocess.py", line 729, in __init__
    restore_signals, start_new_session)
  File "/usr/lib/python3.6/subprocess.py", line 1364, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'metaflac': 'metaflac'


UTC~15:29:41: Process queue finished.
UTC~15:29:51: Processing Complete!
UTC~15:29:51: Waiting for all running process to complete.
UTC~15:29:51: Processing run log...
Traceback (most recent call last):
  File "/home/mike/environments/flac2all_env/bin/flac2all", line 11, in <module>
    sys.exit(main())
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/__init__.py", line 440, in main
    threaded_encode()
  File "/home/mike/environments/flac2all_env/lib/python3.6/site-packages/flac2all_pkg/multiprocess_encode.py", line 188, in encode
    failures = generate_summary(start_time, end_time, len(files), result_log, opts['outdir'])
TypeError: generate_summary() takes 4 positional arguments but 5 were given
(flac2all_env) mike@NUC7i5Upstairs:~/output/album/R.E.M. - Automatic for the People$

Incorrectly detects the wrong opus version

flac2all detects < 0.1.7 although 0.1.10 is installed.

WARNING: Opus version prior to 0.1.7 detected, NO TAGGING SUPPORT

$ opusenc --version
opusenc opus-tools 0.1.10 (using libopus 1.1.2)

Script appears to find opusenc binary but still crashes

I just tried to run flac2all but ran into the following issue:

opusenc ist /usr/bin/opusenc
Traceback (most recent call last):
File "/usr/bin/flac2all", line 839, in
opusClass = opus()
File "/usr/bin/flac2all", line 110, in init
data = re.search("\d.\d.\d",data).group(0)
AttributeError: 'NoneType' object has no attribute 'group'

Looking at previous issues reported, it seems this would be an issue with opusenc not being installed properly. However, the script reports the existence of opusenc correctly - as seen above - and I confirmed it through my package manager and by going to the location of the binary myself.

Once I commented all the code relating to opus out of the script it ran correctly and converted my files (to mp3). Upon further investigation I've found that explicitly defining the path for my opusenc binary as the script recommends solves the issue. I still feel like this is a bug though, since the error from above clearly output the path to the binary correctly, but I'll leave that for someone more knowledgeable to determine.

I'm running the following software:
Arch Linux, kernel 4.19.4
opusenc opus-tools 0.2 (using libopus 1.3)
flac2all v3 (top of script) v2.75-4 (AUR)
python 2.7.15

when converting to mp3, tags that contain accents are not treated correctly

What steps will reproduce the problem?
1. Take file with a tag containing some accent (for example é)
2. convert it to mp3


What is the expected output? What do you see instead?
expected output: Tags preserved
real output: example: "Biréli Lagrène" becomes "Bir", "Gérard" becomes "G"

What version of the product are you using? On what operating system?
v3.51





Original issue reported on code.google.com by [email protected] on 20 Feb 2015 at 6:26

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.