Gentoo Archives: gentoo-user

From: covici@××××××××××.com
To: gentoo-user@l.g.o
Subject: Re: [gentoo-user] CD ripper that generates song titles?
Date: Tue, 08 Sep 2015 07:09:35
Message-Id: 23454.1441696160@ccs.covici.com
In Reply to: Re: [gentoo-user] CD ripper that generates song titles? by Fernando Rodriguez
1 Fernando Rodriguez <frodriguez.developer@×××××××.com> wrote:
2
3 > On Tuesday, September 08, 2015 12:09:14 AM covici@××××××××××.com wrote:
4 > > Fernando Rodriguez <frodriguez.developer@×××××××.com> wrote:
5 > >
6 > > > On Monday, September 07, 2015 7:45:47 PM covici@××××××××××.com wrote:
7 > > > > Alex Corkwell <i.am.the.memory@×××××.com> wrote:
8 > > > >
9 > > > > > On Wed, Aug 26, 2015 at 04:06:10PM -0400, Walter Dnes wrote:
10 > > > > > > I went to the CNE (Canadian National Exhibition) yesterday and
11 > > > > > > indulged in a buying spree of 18 CD sets of my fave music (basically
12 > > > > > > anything pop/rock/country pre-Beatles). I now have over 20 CDs that
13 > I
14 > > > > > > want to rip to flac eventually. I dread the gruntwork in renaming
15 > > > > > > tracks like track01.cdda.wav, etc. What Gentoo ebuilds are there
16 > for
17 > > > > > > stuff that'll get ahold of track titles? Is it in the form of
18 > metadata
19 > > > > > > on the CD?
20 > > > > >
21 > > > > > I personally like using morituri [1] for ripping my CDs.
22 > > > > > It's a little bit slower than some, but very accurate (I believe it
23 > > > > > compares several reads, just to make sure there were no errors).
24 > > > > > It's not available in the main portage tree, but it's in the dev-zero
25 > > > > > overlay as media-sound/morituri.
26 > > > > >
27 > > > > > It can rip to flac (with optional cue files) and works from the
28 > > > > > terminal, if you prefer that.
29 > > > > > Additionally, it can adjust for drive read offsets when writing files,
30 > > > > > and is one of the few Linux things I've found which check the rips
31 > > > > > against AccurateRip.
32 > > > > >
33 > > > > > What's particularly nice about it is that it uses what little metadata
34 > > > > > and such it can get from the CD to look it up in MusicBrainz and add
35 > in
36 > > > > > the title, artist, etc.
37 > > > > > It also uses this to name the files according to album, artist, song
38 > > > > > title, etc.
39 > > > > > The template it uses to name the files and directories is relatively
40 > > > > > configurable, as well.
41 > > > > >
42 > > > > > If you need more configurable tagging, cover art downloading, and such,
43 > > > > > then look into Picard [2], which is in the main portage tree as
44 > > > > > media-sound/picard.
45 > > > > > It uses MusicBrainz [3] to get a whole bunch of metadata, tags, cover
46 > > > > > art, and other stuff, and can rename files much more flexibly than
47 > > > > > morituri.
48 > > > > >
49 > > > > > This is especially nice in combination with morituri, since morituri
50 > > > > > saves the MusicBrainz ID into the metadata of the ripped files.
51 > > > > > Normally, Picard looks files up by either the available metadata, or by
52 > > > > > the acoustic fingerprint.
53 > > > > > Since the MusicBrainz ID is already there, it immediately knows which
54 > > > > > album it is (although it may have the wrong release if you want to be
55 > > > > > that precise).
56 > > > > >
57 > > > > > The only caveats with Picard that I know of are that it's GUI only, it
58 > > > > > can't embed full size cover art if the image is above some large
59 > > > > > resolution, and I think that submitting extra fingerprints requires you
60 > > > > > to register with AcoustID [4].
61 > > > > > Also, it's not an actual ripper.
62 > > > > > It just works on the metadata and tags of flac, mp3, and maybe a few
63 > > > > > other types.
64 > > > > >
65 > > > > > I personally like to rip with morituri, then polish the tagging and
66 > get
67 > > > > > the cover art with Picard.
68 > > > > >
69 > > > > > [1] http://thomas.apestaart.org/morituri/trac/wiki
70 > > > > > [2] https://picard.musicbrainz.org/
71 > > > > > [3] https://musicbrainz.org/
72 > > > > > [4] https://acoustid.org/
73 > > > >
74 > > > > In trying to emerge morituri from the overlay I get the folloing:
75 > > > >
76 > > > > make[1]: Entering directory
77 > > > > '/var/tmp/portage/media-sound/morituri-0.2.3/work/morituri-0.2.3'
78 > > > > if test -e ./.git; then make REVISION; fi
79 > > > > make[1]: Leaving directory
80 > > > > '/var/tmp/portage/media-sound/morituri-0.2.3/work/morituri-0.2.3'
81 > > > > ** Message: pygobject_register_sinkfunc is deprecated (GstObject)
82 > > > > Progress:
83 > > > > 00:10
84 > > > > (null)*(null) (null)ACCESS DENIED(null): mkstemp:
85 > > > >
86 > > >
87 > /run/user/0/orcexec.XXXXXX-------------------------------------------------------------------------]
88 > > > > Building documentation: morituri.common.checksum
89 > > > > (/var/tmp/portage/media-
90 > > > sound/morituri-0.2.3/work/morituri-0.2.3/morituri/common/checksum.py)
91 > > > > (gst-plugin-scanner:3783): GStreamer-CRITICAL **:
92 > > > > gst_structure_empty_new: assertion 'gst_structure_validate_name (name)'
93 > > > > failed
94 > > > >
95 > > > > (gst-plugin-scanner:3783): Clutter-CRITICAL **: Unable to initialize
96 > > > > Clutter: Could not initialize Gdk
97 > > > > ** Message: pygobject_register_sinkfunc is deprecated (GstObject)
98 > > > > Warning: Unable to extract the base list for
99 > > > > twisted.trial.unittest.TestDecorator: Bad dotted name
100 > > > > Warning: Module gobject._gobject is shadowed by a variable with the same
101 > > > > name.
102 > > > > Warning: 18 markup errors were found while processing docstrings. Use
103 > > > > the verbose switch (-v) to display markup errors.
104 > > > > >>> Source compiled.
105 > > > > (null)*(null) --------------------------- ACCESS VIOLATION SUMMARY
106 > > > > ---------------------------
107 > > > > (null)*(null) LOG FILE: "/var/log/sandbox/sandbox-3700.log"
108 > > > > (null)*(null)
109 > > > > VERSION 1.0
110 > > > > FORMAT: F - Function called
111 > > > > FORMAT: S - Access Status
112 > > > > FORMAT: P - Path as passed to function
113 > > > > FORMAT: A - Absolute Path (not canonical)
114 > > > > FORMAT: R - Canonical Path
115 > > > > FORMAT: C - Command Line
116 > > > >
117 > > > > F: mkstemp
118 > > > > S: deny
119 > > > > P: /run/user/0/orcexec.XXXXXX
120 > > > > A: /run/user/0/orcexec.XXXXXX
121 > > > > R: /run/user/0/orcexec.XXXXXX
122 > > > > C: /usr/lib64/gstreamer-0.10/gst-plugin-scanner -l
123 > > > > (null)*(null)
124 > > > >
125 > > >
126 > --------------------------------------------------------------------------------
127 > > > >
128 > > > > >>> Failed to emerge media-sound/morituri-0.2.3, Log file:
129 > > > >
130 > > > > >>> '/var/log/portage/media-sound:morituri-0.2.3:20150907-233836.log'
131 > > > >
132 > > > >
133 > > > > So, how can I fix or is this a dead package i.e. no maintainance?
134 > > > >
135 > > > > Thanks in advance for any ideas.
136 > > > >
137 > > > >
138 > > > >
139 > > >
140 > > > If you trust the ebuild you can try emerging it with FEATURES="-sandbox"
141 > or
142 > > > add an exception for the temp directory on the ebuild.
143 > > >
144 > > > https://devmanual.gentoo.org/function-reference/sandbox-functions/
145 > >
146 > > So, if I wanted to add addpredict /run where would I put it? Somewhere
147 > > in the ebuild? I still tink its pretty funky.
148 > >
149 > >
150 >
151 > It looks like it's happening during the compile phase so at the top of
152 > src_compile(). If it's a live (git) ebuild it's likely that it's an upstream
153 > change since the ebuild was written. If a malicious ebuild wants to escape the
154 > sandbox it's easy (clear LD_PRELOAD or load a dummy sandbox library) so it's
155 > likely just bad practices.
156 >
157 > I don't know if addpredict will work but it's worth a try, in any case I think
158 > it'll be harmless to write there (any user can do it). If there's no
159 > src_compile() make it:
160 >
161 > src_compile() {
162 > addpredict /run/user/0/
163 > default
164 > }
165 >
166 > I don't remember if that's the right syntax for a directory, it may be
167 > addpredict "/run/user/0/*"
168
169 Well, I did get it to emerge, but it was very broke, like they never
170 finished the thing, even valid commands would always give a traceback,
171 so I got rid of the thing.
172
173 Thanks anyway for all your help -- I learned something anyway.
174
175 --
176 Your life is like a penny. You're going to lose it. The question is:
177 How do
178 you spend it?
179
180 John Covici
181 covici@××××××××××.com