Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: A secure ripper for linux (Read 162708 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

A secure ripper for linux

Reply #50
That solved the unmounting problem, but a new problem appeared:
Quote
./pyripper --flac
Welcome to Pyripper version 0.1
Pyripper is released under the GPL license

Initializing disk...
Fetching CDDB info...
"disk1" unmounted successfully.
/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/DiscID.py:53: FutureWarning: x<<y losing bits or changing sign will return a long in Python 2.4 and up
  discid = ((checksum % 0xff) << 24 | total_time << 8 | last)
/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/CDDB.py:33: FutureWarning: %u/%o/%x/%X of negative int will return a signed string in Python 2.4 and up
  query_str = (('%08lx %d ') % (disc_id, num_tracks))
Multiple records were found.

--snip--

Ripping track 1
cdparanoia III release 9.8 (March 23, 2001)
© 2001 Monty <monty@xiph.org> and Xiphophorus

Report bugs to paranoia@xiph.org
http://www.xiph.org/paranoia/

USAGE:
  cdparanoia [options] <span> [outfile]

--snip--

Submit bug reports to xiphmont@mit.edu

Traceback (most recent call last):
  File "./pyripper", line 446, in ?
    x.main()
  File "./pyripper", line 437, in main
    self.rip_and_check(tracknumber)
  File "./pyripper", line 349, in rip_and_check
    if self.sha1_check():
  File "./pyripper", line 292, in sha1_check
    rip = open('tmp/track%(tracknumber)i_%(trial)i.wav' %self.settings, 'r')
IOError: [Errno 2] No such file or directory: 'tmp/track1_1.wav'

I notice that the complete cdparanoia help are displayed, which it have not done earlier.
Send me a PM if its more convenient to take this via mail, msn or simular!

A secure ripper for linux

Reply #51
Ok, I solved the Mac OS X problems. Much thanks goes to krmathis for quick reaction on my questions.
A secure audio ripper for linux: code.google.com/p/rubyripper

A secure ripper for linux

Reply #52
I get this error

Code: [Select]
  File "/usr/bin/pyripper", line 433
   self.disc_id()
      ^
SyntaxError: invalid syntax


running OS X 10.3.9.

Can you advise ?

    Cheers.

A secure ripper for linux

Reply #53
Can you redownload please? I fixed a few syntax bugs.
A secure audio ripper for linux: code.google.com/p/rubyripper

A secure ripper for linux

Reply #54
Quote
Can you redownload please? I fixed a few syntax bugs.
[a href="index.php?act=findpost&pid=340813"][{POST_SNAPBACK}][/a]


That seems fine now but I can't work out where to put PyCDDB.py. I've tried putting it in /Library/Python/2.3 and creating /usr/lib/python-2.3 and putting it there but no go.

A secure ripper for linux

Reply #55
Well, I have them in /usr/lib/python2.4/site-packages/. But is there no installer available for Mac Os?
A secure audio ripper for linux: code.google.com/p/rubyripper

A secure ripper for linux

Reply #56
Quote
That seems fine now but I can't work out where to put PyCDDB.py. I've tried putting it in /Library/Python/2.3 and creating /usr/lib/python-2.3 and putting it there but no go.

Download and unpack CDDB-py and read the included README.
It includes an installer... 

A secure ripper for linux

Reply #57
Thanks krmathis.

That's sorted but now I get:
Code: [Select]
Initializing disk...
Fetching CDDB info...
"disk1" unmounted successfully.
Traceback (most recent call last):
 File "/usr/bin/pyripper", line 452, in ?
   x.main()
 File "/usr/bin/pyripper", line 435, in main
   self.handle_status_cddb()
 File "/usr/bin/pyripper", line 207, in handle_status_cddb
   elif query_status == 201:
NameError: global name 'query_status' is not defined

A secure ripper for linux

Reply #58
Pyripper 0.1.2 released. Pyripper was crashing if it's trials exceeded max_tries. This should fix it. Also the eject paramater works now. And some small bugs fixed.

You can find the newest version at http://www.gentoolinux.demon.nl

@ffooky: I suspect you're still using an old version, since query_status doesn't exist in newest version. Please try again.
A secure audio ripper for linux: code.google.com/p/rubyripper

A secure ripper for linux

Reply #59
Code: [Select]
Welcome to Pyripper version 0.1.2
Pyripper is released under the GPL license
Initializing disk...
Fetching CDDB info...
"disk1" unmounted successfully.

 <snip>

Ripping track 1
Could not obtain exclusive access to the device (e00002d5).
The volume is already mounted.
Traceback (most recent call last):
 File "/usr/bin/pyripper", line 480, in ?
   x.main()
 File "/usr/bin/pyripper", line 471, in main
   self.rip_and_check(tracknumber)
 File "/usr/bin/pyripper", line 383, in rip_and_check
   if self.sha1_check():
 File "/usr/bin/pyripper", line 319, in sha1_check
   rip = open('tmp/track%(tracknumber)i_%(trial)i.wav' %self.settings, 'r')
IOError: [Errno 2] No such file or directory: 'tmp/track1_1.wav'


The disc did indeed unmount but I've tried unmounting before running pyripper and get the same error.

A secure ripper for linux

Reply #60
Quote
Since there are no python bindings to cdparanoia


You can try using ctypes to use the functions in the cdparanoia lib (an .so probably).  ctypes is your friend both in linux and windows

A secure ripper for linux

Reply #61
Quote
I just hacked together a (very experimental) perl script to rip a track, until every byte has been read at least 3x with the same value. Used cdparanoia as ripper. Here's the result, first value is rip number and second value is "dirty bytes left":

3rd rip: 365
4th rip: 39
5th rip: 0

The script doesn't correct the rip yet, it just displays all the bytepositions to be corrected, and the correct values. It's slow and memory-intensive (at least if there are many errors), but usable. If you're interested I can work on it some more and put it online.[{POST_SNAPBACK}][/a]
This sounds like you implemented legg's cache autodefeating error correction scheme? You are the second smart person to understand the divinity of this algorithm. Even jcoalson humbly backed legg in this [a href="http://www.hydrogenaudio.org/forums/index.php?showtopic=38418&view=findpost&p=338855]post[/url].

Let us repeat the algorithm once more, in all its glory:
Quote
A mighty suggestion for your ripper:
1. If the compare between 2 files fails, keep the two copies.
2. Compare each sample of both files, samples that are identical should be written to a 3rd file, fill with zeros the rest, and keep a table of 'samples to go'.
3. Re-rip, now you have a 4th file, compare the 'samples to go' from this 4th file with 1st and 2nd file, if one matches write to 3rd file, update 'samples to go'
4. Re-rip, now you have a 5th file...and so on and on until samples to go is void.

An orthodox way of doing things but I believe this should mean WAY LESS rips to get a proper file.
[{POST_SNAPBACK}][/a]

Actually only the first file needs to be saved in whole. As sequential reads get diffed, only dirty bytes get saved, preferably as variables in memory, since these can be assumed small.

Please experiment with new ideas and report the outcome, because scripting in high-level languages like Perl is quick and dirty. That is perfect for pioneering, while the final program for the masses should be written in C. Then please report the findings to this thread: [a href="http://www.hydrogenaudio.org/forums/index.php?showtopic=38595&hl=]Improving cdparanoia, cdparanoia's lacks and how to fix them[/url], so that the new algorithm can be implemented in cdparanoia.

[span style='font-size:8pt;line-height:100%']Edit: Horrible spelling error.[/span]

A secure ripper for linux

Reply #62
Quote
This sounds like you implemented legg's cache autodefeating error correction scheme? You are the second smart person to understand the divinity of this algorithm.


Yes, I wrote it after this idea. There is a difference, though, as I don't compare Samples but Bytes. I use the cmp-command for finding the differences , and it only seems to support 8-bit chunks. I tried comparing in perl, but you can imagine I got bored after a few minutes waiting...

Also, the algorithm isn't safe for tracks with real read problems. The algorithm you mentioned only required a sample to be equal twice, I tried with 3x, but still, on my test cd with a small damage (can't be read correctly by eac either) the results of two runs with my script were different, and it only took around 6 rips each time.

Oh, and I implemented the patching part btw. If I get a few things fixed I'll write to the thread you mentioned.

MedO

A secure ripper for linux

Reply #63
This is a great initiative! Can't wait for 0.2 

A secure ripper for linux

Reply #64
Ok, things are getting more clear now for me. Seems like a lot of work to implement though. But I can always try
A secure audio ripper for linux: code.google.com/p/rubyripper

A secure ripper for linux

Reply #65
Quote
Also, the algorithm isn't safe for tracks with real read problems. The algorithm you mentioned only required a sample to be equal twice, I tried with 3x, but still, on my test cd with a small damage (can't be read correctly by eac either) the results of two runs with my script were different, and it only took around 6 rips each time.

Oh, and I implemented the patching part btw. If I get a few things fixed I'll write to the thread you mentioned.[{POST_SNAPBACK}][/a]
Here is another thread on the subject:
[a href="http://www.hydrogenaudio.org/forums/index.php?showtopic=37313]foobar 0.9 vs EAC Secure rip, Invite to test rips on your drives[/url]

If I recall correctly, the consensus was that none of the ripping programs tested (including EAC) are reliable in T&C mode with severe but correctable scratches, and C2 error detection is not the total solution to this problem. Some CD-drives have more reliable C2 reporting than others, and that depends on brand, model etc.

The erroneous matching bytes are not by any chance zeroes? How will the results change if every byte is required to match eight times, but only if the first two reads were different? Perhaps only blocks of 24 consecutive bytes should be matched and patched on an audio-cd frame basis? What is the bahaviour of consecutive bytes, can the patching be visualised in some crude way e.g. with character-strings? That is:
1. oooooooooooooooooo
2. ooooxxxxxxxooooooo
3. oooooxx11xxooooooo
4. ooooox222xxooooooo

This is just an example. Some map of matching bytes for each extraction should then be invented, or simply bytes output as integers in a clever way that describes what is going on. Study of the behaviour of this patching process can reveal peculiarities not found in the abovementioned thread: foobar 0.9 vs EAC Secure rip, Invite to test rips on your drives.

A secure ripper for linux

Reply #66
Ok, to have something to do in the weekend, I'll present this test-version a try. It may not work and have errors

It rips the first two tracks, compares them, if failed the errors will be analyzed. Each 1000 bytes will be compared between the two files. Errors will be saved into memory, identified by the file position. To save memory temporary files are used for succesfull samples.
Then a next rip will happen, which will copy the already compared bytes and look if the unique byte chunks of the new file will compare to one of the first. If this is the case the list of errors will remove the error and the temporary file will be updated. If there are still errors, the process will be repeated. Note that --max_tries won't work right now.

Right-click and save as.. pyripper-test

<edit> Give some more usefull information, now I have time  </edit>
A secure audio ripper for linux: code.google.com/p/rubyripper

A secure ripper for linux

Reply #67
Quote
The erroneous matching bytes are not by any chance zeroes? How will the results change if every byte is required to match eight times, but only if the first two reads were different? Perhaps only blocks of 24 consecutive bytes should be matched and patched on an audio-cd frame basis? What is the bahaviour of consecutive bytes, can the patching be visualised in some crude way e.g. with character-strings? That is:
1. oooooooooooooooooo
2. ooooxxxxxxxooooooo
3. oooooxx11xxooooooo
4. ooooox222xxooooooo

This is just an example. Some map of matching bytes for each extraction should then be invented, or simply bytes output as integers in a clever way that describes what is going on. Study of the behaviour of this patching process can reveal peculiarities not found in the abovementioned thread: foobar 0.9 vs EAC Secure rip, Invite to test rips on your drives.
[{POST_SNAPBACK}][/a]


This would be interesting to tell indeed. I just dumped all errors in a log file. Maybe you're interested to look into it? I don't exactly have a lot of experience in reading byte code. You probably need an hex reader to do so.

After each error I've putted ERROR! to identify each error. All error's are in pairs: A sample of 1000 bites of first file, followed by 1000 bites of second file.

To download the log right-click and save as
[a href="http://www.gentoolinux.demon.nl/errors.log]Errors.log[/url]
A secure audio ripper for linux: code.google.com/p/rubyripper

A secure ripper for linux

Reply #68
So I have been thinking. How can we be sure that a single match for each 1000 bytes is enough. Well, the alternative would be to match it more, to see if this will result in a different result. I have though of the following setup to test for this:

- Download and install (right-click and save as)pyripper-test.
- Use 1 cd which often gives problems (I created one myself with a ballpoint  )
- For the first track let pyripper do it's work, when the encoding starts cancel it (Cntrl-Z)
- Give the first track a unique name and move it to a different directory
- Repeat the process 5 times with cdparanoia
- Repeat the process 5 times with cdda2wav
- Repeat the process with a second cdplayer (if you have one)
- Give the files names, so you can see if there was a direct match or the error correction was needed.
- At the end do a sha1sum * in the 'different' directory

The result I've got is as follows:

Code: [Select]
8ec34b5f6e6fda63b58812ffa395d385f424da5f  trial01_corrected_cdparanoia.wav
8ec34b5f6e6fda63b58812ffa395d385f424da5f  trial02_corrected_cdparanoia.wav
8ec34b5f6e6fda63b58812ffa395d385f424da5f  trial03_corrected_cdparanoia.wav
8ec34b5f6e6fda63b58812ffa395d385f424da5f  trial04_corrected_cdparanoia.wav
8ec34b5f6e6fda63b58812ffa395d385f424da5f  trial05_corrected_cdparanoia.wav
8ec34b5f6e6fda63b58812ffa395d385f424da5f  trial06_corrected_cdda2wav.wav
8ec34b5f6e6fda63b58812ffa395d385f424da5f  trial07_corrected_cdda2wav.wav
8ec34b5f6e6fda63b58812ffa395d385f424da5f  trial08_corrected_cdda2wav.wav
8ec34b5f6e6fda63b58812ffa395d385f424da5f  trial09_corrected_cdda2wav.wav
8ec34b5f6e6fda63b58812ffa395d385f424da5f  trial10_match_cdda2wav.wav
206bb48f1225761b7ac2c137e9d50ce170ba1330  trial11_match_cdda2wav.wav
206bb48f1225761b7ac2c137e9d50ce170ba1330  trial12_match_cdda2wav.wav
206bb48f1225761b7ac2c137e9d50ce170ba1330  trial13_match_cdda2wav.wav
206bb48f1225761b7ac2c137e9d50ce170ba1330  trial14_match_cdda2wav.wav
206bb48f1225761b7ac2c137e9d50ce170ba1330  trial15_match_cdda2wav.wav
206bb48f1225761b7ac2c137e9d50ce170ba1330  trial16_match_cdparanoia.wav
206bb48f1225761b7ac2c137e9d50ce170ba1330  trial17_match_cdparanoia.wav
206bb48f1225761b7ac2c137e9d50ce170ba1330  trial18_match_cdparanoia.wav
206bb48f1225761b7ac2c137e9d50ce170ba1330  trial19_match_cdparanoia.wav
206bb48f1225761b7ac2c137e9d50ce170ba1330  trial20_match_cdparanoia.wav


Some remarks:
-Different cdrom-players seem to create different wav files. This is to be expected: the drives probably have different offsets.
-My second cdrom-player seems to do a better job in audio extraction.
-For this CD, I would say that the error correction worked perfectly fine
-For this CD, one match seems to be sufficient to get a reliable result. This might have to do with a larger amount of bytes read (1000) than rehgf did.
-I can't discover any weird clicks in the resulting file

Please show your results too if you encounter any difficult to rip discs. Based on only one CD we still can't say much definitive. Though the results are hopefull I'd say
A secure audio ripper for linux: code.google.com/p/rubyripper

A secure ripper for linux

Reply #69
Quote
-I can't discover any weird clicks in the resulting file


AFAIK, some modern drives automatically interpolate audiosamples that are not read correctly, so that on those drives you won't get the typical clicks.

A secure ripper for linux

Reply #70
i'm having trouble setting up pyripper on my ibook I'm running 10.4.x Tiger
I have Python 2.4.1-1 installed
I installed the Tiger patch
I already have cdparanoia installed

now i'm trying to install cddb.py as the root (I have no idea what this means)
I tried clicking on the setup.py and it opened up the python terminal.
I've never used Python at all.
Am I suppose to run setup.py from the python terminal as root or from the "terminal.app" window?
I've used the "sudo" command before (without really understanding it) to run maintenance scripts from "terminal.app"
I've looked around a little and found the sudo command for terminal.app -I tried this

      ,
Code: [Select]
 ibook:~ Jay$ sudo install /Applications/Downloads/CDDB-1.4/setup.py 
Password:
Sorry, try again.
Password:
usage: install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
              [-o owner] file1 file2
      install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
              [-o owner] file1 ... fileN directory
      install -d [-v] [-g group] [-m mode] [-o owner] directory ...
ibook:~ Jay$

but I don't think it installed( I beleive this is just showing me usage) and Like I said I'm not even sure if that is where to run it.
if u can help with this
and any other steps that you think a noob might mess up.
Of Course my final goal is getting pyripper installed and working If some one can Please! help , I'd greatly appreciate it Thank You  my AIM name is jas1612 or u can email me at jas1612@gmail.com or post here

A secure ripper for linux

Reply #71
Quote
i'm having trouble setting up pyripper on my ibook I'm running 10.4.x Tiger
I have Python 2.4.1-1 installed
I installed the Tiger patch
I already have cdparanoia installed

now i'm trying to install cddb.py as the root (I have no idea what this means)
I tried clicking on the setup.py and it opened up the python terminal.
I've never used Python at all.
Am I suppose to run setup.py from the python terminal as root or from the "terminal.app" window?
I've used the "sudo" command before (without really understanding it) to run maintenance scripts from "terminal.app"
I've looked around a little and found the sudo command for terminal.app -I tried this

       ,
Code: [Select]
 ibook:~ Jay$ sudo install /Applications/Downloads/CDDB-1.4/setup.py 
Password:
Sorry, try again.
Password:
usage: install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
              [-o owner] file1 file2
      install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
              [-o owner] file1 ... fileN directory
      install -d [-v] [-g group] [-m mode] [-o owner] directory ...
ibook:~ Jay$

but I don't think it installed( I beleive this is just showing me usage) and Like I said I'm not even sure if that is where to run it.
if u can help with this
and any other steps that you think a noob might mess up.
Of Course my final goal is getting pyripper installed and working If some one can Please! help , I'd greatly appreciate it Thank You   my AIM name is jas1612 or u can email me at jas1612@gmail.com or post here
[a href="index.php?act=findpost&pid=349519"][{POST_SNAPBACK}][/a]

finally got everything installed. I didn't have X tools installed, which needs to be for pycddb to work.
I can't get it to pyripper to reconize my cd drive ,I think
Code: [Select]
ibook:~ Jay$ pyripper --flac
Welcome to Pyripper version 0.1.2
Pyripper is released under the GPL license
Initializing disk...
Fetching CDDB info...
"disk1" unmounted successfully.
Traceback (most recent call last):
 File "/usr/bin/pyripper", line 480, in ?
   x.main()
 File "/usr/bin/pyripper", line 461, in main
   self.disc_id()
 File "/usr/bin/pyripper", line 186, in disc_id
   self.disc_id = DiscID.disc_id(disc)
 File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/DiscID.py", line 38, in disc_id
   (first, last) = cdrom.toc_header(device)
cdrom.error: (25, 'Inappropriate ioctl for device')

any ideas?

A secure ripper for linux

Reply #72
Quote
finally got everything installed. I didn't have X tools installed, which needs to be for pycddb to work.
I can't get it to pyripper to reconize my cd drive ,I think
Code: [Select]
ibook:~ Jay$ pyripper --flac
Welcome to Pyripper version 0.1.2
Pyripper is released under the GPL license
Initializing disk...
Fetching CDDB info...
"disk1" unmounted successfully.
Traceback (most recent call last):
 File "/usr/bin/pyripper", line 480, in ?
   x.main()
 File "/usr/bin/pyripper", line 461, in main
   self.disc_id()
 File "/usr/bin/pyripper", line 186, in disc_id
   self.disc_id = DiscID.disc_id(disc)
 File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/DiscID.py", line 38, in disc_id
   (first, last) = cdrom.toc_header(device)
cdrom.error: (25, 'Inappropriate ioctl for device')

any ideas?
[a href="index.php?act=findpost&pid=349826"][{POST_SNAPBACK}][/a]

jas1612, you may need to add the option "--cdrom /dev/disk2" without quotes if you are using an external drive, it worked for me.

I am having a different problem however.  Pyripper works fine for --mp3 and --vorbis but not --flac.  Here is the error log:
Code: [Select]
        Matching digests are found :)
       Encoding track 1 to flac
sh: -c: line 1: syntax error near unexpected token `('
sh: -c: line 1: `flac %(flacsettings)s -o "%(output)s" -s --tag ARTIST="%(artist)s" --tag TITLE="%(trackname)s" --tag ALBUM="%(album)s" --tag DATE="%(year)s" --tag TRACKNUMBER="%(tracknumber)i" --tag GENRE="%(genre)s" "%(input)s"'
Traceback (most recent call last):
 File "/usr/local/bin/pyripper", line 480, in ?
   x.main()
 File "/usr/local/bin/pyripper", line 471, in main
   self.rip_and_check(tracknumber)
 File "/usr/local/bin/pyripper", line 388, in rip_and_check
   self.encode_with_flac()
 File "/usr/local/bin/pyripper", line 347, in encode_with_flac
   os.rename('tmp/track%(tracknumber)i_%(trial)i.flac' %self.settings, filename)
OSError: [Errno 2] No such file or directory

Any ideas?
I was also wondering if --wav could be added as an option.  I am running Mac OS X 10.4.3.  Thanks, Steven

A secure ripper for linux

Reply #73
Quote
Quote
finally got everything installed. I didn't have X tools installed, which needs to be for pycddb to work.
I can't get it to pyripper to reconize my cd drive ,I think
Code: [Select]
ibook:~ Jay$ pyripper --flac
Welcome to Pyripper version 0.1.2
Pyripper is released under the GPL license
Initializing disk...
Fetching CDDB info...
"disk1" unmounted successfully.
Traceback (most recent call last):
 File "/usr/bin/pyripper", line 480, in ?
   x.main()
 File "/usr/bin/pyripper", line 461, in main
   self.disc_id()
 File "/usr/bin/pyripper", line 186, in disc_id
   self.disc_id = DiscID.disc_id(disc)
 File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/DiscID.py", line 38, in disc_id
   (first, last) = cdrom.toc_header(device)
cdrom.error: (25, 'Inappropriate ioctl for device')

any ideas?
[a href="index.php?act=findpost&pid=349826"][{POST_SNAPBACK}][/a]

jas1612, you may need to add the option "--cdrom /dev/disk2" without quotes if you are using an external drive, it worked for me.

I am having a different problem however.  Pyripper works fine for --mp3 and --vorbis but not --flac.  Here is the error log:
Code: [Select]
        Matching digests are found :)
       Encoding track 1 to flac
sh: -c: line 1: syntax error near unexpected token `('
sh: -c: line 1: `flac %(flacsettings)s -o "%(output)s" -s --tag ARTIST="%(artist)s" --tag TITLE="%(trackname)s" --tag ALBUM="%(album)s" --tag DATE="%(year)s" --tag TRACKNUMBER="%(tracknumber)i" --tag GENRE="%(genre)s" "%(input)s"'
Traceback (most recent call last):
 File "/usr/local/bin/pyripper", line 480, in ?
   x.main()
 File "/usr/local/bin/pyripper", line 471, in main
   self.rip_and_check(tracknumber)
 File "/usr/local/bin/pyripper", line 388, in rip_and_check
   self.encode_with_flac()
 File "/usr/local/bin/pyripper", line 347, in encode_with_flac
   os.rename('tmp/track%(tracknumber)i_%(trial)i.flac' %self.settings, filename)
OSError: [Errno 2] No such file or directory

Any ideas?
I was also wondering if --wav could be added as an option.  I am running Mac OS X 10.4.3.  Thanks, Steven
[a href="index.php?act=findpost&pid=352078"][{POST_SNAPBACK}][/a]

Thanks, That worked for me. But I'm getting the exact same error as you now. I can rip to wav though. I would really like to be able to use pyripper with ALAC or AAC.. I was just testing it out with the flac line. I'm not too good with the terminal, but maybe there is a specific FLAC module that neeeds to be installed.

A secure ripper for linux

Reply #74
Code: [Select]
Welcome to Pyripper version 0.1.2
Pyripper is released under the GPL license
Initializing disk...
Fetching CDDB info...
"disk1" unmounted successfully.

--
/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/DiscID.py:53: FutureWarning: x<<y losing bits or changing sign will return a long in Python 2.4 and up
 discid = ((checksum % 0xff) << 24 | total_time << 8 | last)
/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/CDDB.py:33: FutureWarning: %u/%o/%x/%X of negative int will return a signed string in Python 2.4 and up
 query_str = (('%08lx %d ') % (disc_id, num_tracks))
--

****************************************
Artist   = Lagwagon
Album    = Let's Talk About Feelings
Year     = 1998
Genre    = Pop Punk
Tracks   = 12
Playtime = 25:25
****************************************
track 01 = After You My Friend
track 02 = Gun In Your Hand
track 03 = Leave The Light On
track 04 = Change Despair
track 05 = Train
track 06 = Hurry Up And Wait
track 07 = Everything Turns Grey
track 08 = Love Story
track 09 = Messengers
track 10 = The Kids Are All Wrong
track 11 = May 16
track 12 = Owen Meany
****************************************
Ripping track 1
track_num = 160 start sector 4350 msf: 1,0,0
track_num = 161 start sector 53850 msf: 12,0,0
track_num = 162 start sector 114285 msf: 25,25,60
track_num = 1 start sector 0 msf: 0,2,0
track_num = 2 start sector 11593 msf: 2,36,43
track_num = 3 start sector 20800 msf: 4,39,25
track_num = 4 start sector 29405 msf: 6,34,5
track_num = 5 start sector 38100 msf: 8,30,0
track_num = 6 start sector 48943 msf: 10,54,43
track_num = 7 start sector 51555 msf: 11,29,30
track_num = 8 start sector 59765 msf: 13,18,65
track_num = 9 start sector 70298 msf: 15,39,23
track_num = 10 start sector 79108 msf: 17,36,58
track_num = 11 start sector 84168 msf: 18,44,18
track_num = 12 start sector 97515 msf: 21,42,15
       Digest for trial # 1 = 83e3908a846340a55b33b78be6a4451161bedaa2
track_num = 160 start sector 4350 msf: 1,0,0
track_num = 161 start sector 53850 msf: 12,0,0
track_num = 162 start sector 114285 msf: 25,25,60
track_num = 1 start sector 0 msf: 0,2,0
track_num = 2 start sector 11593 msf: 2,36,43
track_num = 3 start sector 20800 msf: 4,39,25
track_num = 4 start sector 29405 msf: 6,34,5
track_num = 5 start sector 38100 msf: 8,30,0
track_num = 6 start sector 48943 msf: 10,54,43
track_num = 7 start sector 51555 msf: 11,29,30
track_num = 8 start sector 59765 msf: 13,18,65
track_num = 9 start sector 70298 msf: 15,39,23
track_num = 10 start sector 79108 msf: 17,36,58
track_num = 11 start sector 84168 msf: 18,44,18
track_num = 12 start sector 97515 msf: 21,42,15
       Digest for trial # 2 = 83e3908a846340a55b33b78be6a4451161bedaa2
       Matching digests are found :)
       Encoding track 1 to lame mp3

--
Unknown genre: 'Pop Punk'.  Specify genre name or number
Traceback (most recent call last):
 File "/usr/bin/pyripper", line 480, in ?
   x.main()
 File "/usr/bin/pyripper", line 471, in main
   self.rip_and_check(tracknumber)
 File "/usr/bin/pyripper", line 391, in rip_and_check
   self.encode_with_lame()
 File "/usr/bin/pyripper", line 354, in encode_with_lame
   os.rename('tmp/track%(tracknumber)i_%(trial)i.mp3' %self.settings, filename)
OSError: [Errno 2] No such file or directory
--



The first part occurs on most but not all rips. The second part seems to be a problem at coding the tags?

Code: [Select]
Welcome to Pyripper version 0.1.2
Pyripper is released under the GPL license
Initializing disk...
Fetching CDDB info...
"disk1" unmounted successfully.
/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/DiscID.py:53: FutureWarning: x<<y losing bits or changing sign will return a long in Python 2.4 and up
 discid = ((checksum % 0xff) << 24 | total_time << 8 | last)
/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/CDDB.py:33: FutureWarning: %u/%o/%x/%X of negative int will return a signed string in Python 2.4 and up
 query_str = (('%08lx %d ') % (disc_id, num_tracks))
****************************************
Artist   = Propagandhi
Album    = Less Talk, More Rock
Year     = 1996
Genre    = Punk Rock
Tracks   = 14
Playtime = 26:00
****************************************
track 01 = Apparently, I'm a "P.C. Fascist" (Because I Care About Both Human And Non-Human Animals)
track 02 = Nailing Descartes To The Wall,(Liquid) Meat Is Still Murder
track 03 = Less Talk, More Rock
track 04 = Anchorless
track 05 = Rio De San Atlanta, Manitoba
track 06 = A Public Dis-service Announcement From Shell
track 07 = ...And We Thought That Nation-States Were A Bad Idea
track 08 = I Was A Pre-teen McCarthyist
track 09 = Resisting Tyrannical Government
track 10 = Gifts
track 11 = The Only Good Fascist Is A Very Dead Fascist
track 12 = A People's History Of The World
track 13 = The State-Lottery
track 14 = Refusing To Be A Man
****************************************
Ripping track 1
track_num = 160 start sector 4350 msf: 1,0,0
track_num = 161 start sector 62850 msf: 14,0,0
track_num = 162 start sector 116862 msf: 26,0,12
track_num = 1 start sector 0 msf: 0,2,0
track_num = 2 start sector 8087 msf: 1,49,62
track_num = 3 start sector 12900 msf: 2,54,0
track_num = 4 start sector 20232 msf: 4,31,57
track_num = 5 start sector 27687 msf: 6,11,12
track_num = 6 start sector 30682 msf: 6,51,7
track_num = 7 start sector 37132 msf: 8,17,7
track_num = 8 start sector 48005 msf: 10,42,5
track_num = 9 start sector 59482 msf: 13,15,7
track_num = 10 start sector 69642 msf: 15,30,42
track_num = 11 start sector 78905 msf: 17,34,5
track_num = 12 start sector 84215 msf: 18,44,65
track_num = 13 start sector 94835 msf: 21,6,35
track_num = 14 start sector 104850 msf: 23,20,0
       Digest for trial # 1 = 33614159d1bd4a85209db4d6f66ffb6877fcd096
track_num = 160 start sector 4350 msf: 1,0,0
track_num = 161 start sector 62850 msf: 14,0,0
track_num = 162 start sector 116862 msf: 26,0,12
track_num = 1 start sector 0 msf: 0,2,0
track_num = 2 start sector 8087 msf: 1,49,62
track_num = 3 start sector 12900 msf: 2,54,0
track_num = 4 start sector 20232 msf: 4,31,57
track_num = 5 start sector 27687 msf: 6,11,12
track_num = 6 start sector 30682 msf: 6,51,7
track_num = 7 start sector 37132 msf: 8,17,7
track_num = 8 start sector 48005 msf: 10,42,5
track_num = 9 start sector 59482 msf: 13,15,7
track_num = 10 start sector 69642 msf: 15,30,42
track_num = 11 start sector 78905 msf: 17,34,5
track_num = 12 start sector 84215 msf: 18,44,65
track_num = 13 start sector 94835 msf: 21,6,35
track_num = 14 start sector 104850 msf: 23,20,0
       Digest for trial # 2 = 33614159d1bd4a85209db4d6f66ffb6877fcd096
       Matching digests are found :)
       Encoding track 1 to lame mp3
lame: excess arg tmp/track1_2.mp3
LAME version 3.96.1 (http://lame.sourceforge.net/)

usage: lame [options] <infile> [outfile]

   <infile> and/or <outfile> can be "-", which means stdin/stdout.

Try:
    "lame --help"           for general usage information
or:
    "lame --preset help"    for information on suggested predefined settings
or:
    "lame --longhelp"
 or "lame -?"              for a complete options list

Traceback (most recent call last):
 File "/usr/bin/pyripper", line 480, in ?
   x.main()
 File "/usr/bin/pyripper", line 471, in main
   self.rip_and_check(tracknumber)
 File "/usr/bin/pyripper", line 391, in rip_and_check
   self.encode_with_lame()
 File "/usr/bin/pyripper", line 354, in encode_with_lame
   os.rename('tmp/track%(tracknumber)i_%(trial)i.mp3' %self.settings, filename)
OSError: [Errno 2] No such file or directory