Thomas Scholtes
2813cd26c1
Refactor embedart to work at item level
...
Embedding images now triggers the `*_write` plugin events. This
allows *beets-check* to update the checksum. See the [beets-check
issue][1].
[1]: https://github.com/geigerzaehler/beets-check/issues/7
2014-06-02 17:10:48 +02:00
Thomas Scholtes
fea5df2339
covert: embed coverart into converted files
2014-04-26 19:49:29 +02:00
Thomas Scholtes
c20c62409d
convert: log error instead of crashing
2014-04-26 19:47:50 +02:00
Bruno Cauet
7b0ce4f28e
Disable the video stream in all ffmpeg conversions
...
Propagate the previous commit's change to all ffmpeg command lines.
2014-04-21 19:59:18 +02:00
Bruno Cauet
db2a2d1e25
Disable video feed in ffmpeg's flac conversion
...
Video feeds may be found in flac files, and the current ffmpeg
conversion command does not ignore them, causing beets to fail
to convert the file.
Add `-vn` to the command line to fix the problem.
Fix issue #712 .
2014-04-21 15:37:10 +02:00
Thomas Scholtes
ea04344560
Test and fix unicode issues in logs. Fixes #699
...
The helper functions for creating test fixtures now include unicode characters.
2014-04-17 12:12:49 +02:00
Adrian Sampson
e5a9db1cac
fix up some indentation warnings in plugins
2014-04-13 17:55:49 -07:00
Thomas Scholtes
b7a26811ef
Add "shell" keyword for commands and use it in convert
...
Convert used to split the user command at whitespaces and pass it to `Popen`.
This approach is to naive, it also was not consistent with output from the
logs. Instead we pass the whole command to a subshell.
2014-04-09 20:41:30 +02:00
Thomas Scholtes
6402b664c6
More refactoring for convert
2014-04-07 20:17:55 +02:00
Thomas Scholtes
651bdf0acc
Refactor convert plugin
...
* `encode()` raises an error when the command returns with non-zero exit
status. We catch that in the higher-level conversion functions and skip to
the next item without writing tags.
* Simplified the handling of the `keep_new` flag.
2014-04-07 18:24:59 +02:00
Thomas Scholtes
9d87a7fc02
Make convert --keep-new work again
...
Iincludes some more tests for the convert plugin. The test use the extended
TestHelper class and the new pathlib (see #621 ).
2014-04-07 18:07:43 +02:00
Thomas Scholtes
1b434a7dae
Import original file when conversion fails.
...
Fixes previous test
2014-04-05 21:09:12 +02:00
Thomas Scholtes
766c8b190b
Add path argument to item.write()
...
Symmetrical to item.read(), this allows us to update the tags of files that are
not in the library. The motivation was this issue [1].
The commit also includes a nasty hack in the plugin code that prevents breaking
other plugins.
[1]: https://github.com/geigerzaehler/beets-check/issues/1
2014-04-04 14:56:10 +02:00
Adrian Sampson
d407db725f
convert: catch OSErrors and display error message
...
This also adds close_fds (only available on Unixes) to the common subprocess
invocation utility.
2014-04-03 19:47:21 -07:00
Adrian Sampson
318649c16c
convert: fix transcode on windows ( #519 )
2014-02-02 09:54:33 -08:00
Jakob Schnitzer
887e02c2ae
convert: fix decision on which items to transcode
2013-10-27 17:10:55 +00:00
Adrian Sampson
2481dc244b
convert: iterate over the right items ( fix #439 )
2013-10-26 11:08:52 -07:00
Adrian Sampson
54af040bc4
convert: extension is a bytestring ( fix #390 )
2013-10-06 12:13:14 -07:00
Adrian Sampson
a6798f9ba3
#380 : Template.safe_substitute
...
This way, you almost never need to use the $$ escape sequence.
2013-10-06 12:01:42 -07:00
Adrian Sampson
dfea8ea05e
convert: fix outdated reference, col wrap
2013-10-06 11:59:03 -07:00
Adrian Sampson
5e82b670f9
#380 : shortcut/compatibility options
...
These config options make it easier to customize the command (no need to make
a single-element formats dict). And the opt config option provides backwards
compatibility with the previous style.
2013-10-06 11:57:32 -07:00
Adrian Sampson
b7e2ba7795
convert: log transcoding command
2013-10-06 11:28:29 -07:00
Adrian Sampson
d828d7aae4
#380 : correctly skip no-op transcodes
...
The format key is now the (lower-cased) format name string used by beets,
which means we can precisely detect which transcodes would be unnecessary. To
facilitate this, I added an ALIASES dict which allows more convenient names to
work for this (e.g., "wma" is easier to remember than "windows media").
2013-10-06 11:21:56 -07:00
Adrian Sampson
0d303ffde7
multi-format convert ( #362 ): simpler validation
...
This removes the explicit config validation check and collapses it into the
config read step (which is the intended convenience of Confit's API).
2013-10-06 10:56:42 -07:00
Adrian Sampson
c5032f925e
move Destination method to Item class
2013-09-17 09:09:10 -07:00
Rowan Lewis
80d060db07
Added 'quiet' operation mode, prevents start/finish announcements for each file.
2013-09-14 10:18:36 +10:00
Rowan Lewis
52d86f0e6a
Added more format presets, updated documentation.
2013-09-14 09:35:25 +10:00
Rowan Lewis
d2327d2dcf
Fixed validation, basically replace unfriendly errors with friendly errors.
2013-09-14 07:27:15 +10:00
Rowan Lewis
d3dae9f089
Reject lossy formats under a set bitrate.
2013-09-13 08:13:30 +10:00
Rowan Lewis
53aba3ce3f
It's called Vorbis, not OGG.
2013-09-13 07:57:04 +10:00
Rowan Lewis
bfbf5a9215
Changed the configuration to allow for easier format selection.
2013-09-13 07:54:36 +10:00
Rowan Lewis
697e70f14b
Problem with unicode filenames sorted.
2013-09-12 22:21:50 +10:00
Rowan Lewis
697cf3fd65
Removed reference to my testing plugin, oops.
2013-09-12 20:22:18 +10:00
Rowan Lewis
21c9855c4f
Allow the convert plugin to convert to any format, not just mp3.
2013-09-12 20:09:53 +10:00
Adrian Sampson
5e09c5e473
convert: fix iteration over results
2013-08-22 17:33:56 -07:00
Adrian Sampson
c7fe017752
remove Library.{move,store} methods
...
These methods are now provided by LibModel, which makes dealing with items and
albums symmetric.
2013-08-21 15:34:45 -07:00
Adrian Sampson
26682f9168
docs/changelog for convert paths config ( #285 )
2013-05-22 15:00:53 -07:00
Lucas Duailibe
1e0290354c
fix some debug code
2013-05-22 14:11:55 -03:00
Lucas Duailibe
76e310d811
different paths for convert
...
the paths configuration for converted files can be different from the importer
closes #232
2013-05-22 11:03:00 -03:00
Adrian Sampson
dd8d4c16cc
spell check
2013-04-29 10:23:21 -07:00
Adrian Sampson
01a449ffa6
convert: auto ( #212 ) now transcodes to /tmp
...
This avoids naming conflicts in the source directory. In particular, when
encoding MP3 -> MP3, the previous scheme would overwrite the original file
(and hang ffmpeg waiting for input). This should also work in
situations where the source directory is read-only.
2013-03-10 13:22:05 -07:00
Adrian Sampson
8736a0bb4c
convert auto: changelog and de-cloning ( #212 )
2013-03-10 13:12:56 -07:00
Adrian Sampson
47a549a31c
Merge pull request #212 from duailibe/auto_convert
...
Transcode files during import
2013-03-10 12:57:36 -07:00
Lucas Duailibe
c2c96d522f
config name and docs update
2013-03-09 23:33:45 -03:00
Lucas Duailibe
a3d8105a5a
small fix
2013-03-09 20:04:26 -03:00
Lucas Duailibe
27b1d6d7cc
clean up old files and remove pdb
2013-03-09 19:36:34 -03:00
Lucas Duailibe
e49ca34f3c
partial commit
2013-03-09 19:09:43 -03:00
Adrian Sampson
7d9fd0a2cf
convert: fix unicode error in path construction
...
I introduced a regression a few commits ago when I started using
lib.destination with the basedir keyword argument as opposed to doing
os.path.join manually.
2013-03-09 11:37:10 -08:00
Adrian Sampson
69f2659410
convert: read new audio metadata ( #208 )
2013-03-06 23:11:08 -08:00
Adrian Sampson
87d71abc28
changelog/cleanup/fixes for #209
...
The major functional change here is how files move around when in keep_new
mode. Now, files are first moved to the destination directory and then
copied/transcoded back into the library.
This avoids problems where naming conflicts could occur when transcoding from
MP3 to MP3 (and thus not changing the filename).
2013-03-06 18:21:42 -08:00
Lucas Duailibe
a338b95bb7
Changing behavior in "keep new files"
2013-03-06 22:04:05 -03:00
Lucas Duailibe
28522376be
Adding "keep new files" option to convert plugin
2013-03-06 21:41:40 -03:00
Jakob Schnitzer
ef22ea5183
convert: add missing util.displayable_path
2013-03-01 16:16:28 +01:00
Adrian Sampson
c31eabe95c
convert: add missing syspath call ( closes #106 )
2013-02-27 10:30:24 -08:00
Adrian Sampson
7a410f636b
happy new year ✨
...
For future reference, this command did the trick:
ack -l 'Copyright 201' | xargs perl -pi -E 's/Copyright 201./Copyright 2013/'
2013-01-11 10:43:41 -08:00
Adrian Sampson
6d68a4855e
per-plugin configuration defaults in __init__()
...
This uses the new BeetsPlugin.config convenience view heavily. Things are
slowly getting less verbose.
2012-12-18 22:35:44 -08:00
Adrian Sampson
582851a6fe
merge fix from master
2012-12-14 12:57:40 -08:00
Adrian Sampson
4222b37bc2
convert: fix processing singletons w/ "embed" on
2012-12-14 12:38:46 -08:00
Adrian Sampson
6c94358b13
begin Confit-ifying plugins in alphabetical order
2012-12-13 12:31:10 -08:00
Jakob Schnitzer
19acf0809f
convert: switch from flac and lame to ffmpeg
...
Instead of flac and lame the convert plugin now uses ffmpeg. This adds
support for more input formats and simplifies the code. ffmpeg also uses
the lame encoder internally and has equivalents of all the -V<num>
presets which should be sufficient.
2012-11-05 22:30:21 +01:00
Adrian Sampson
f4fa11f8ca
don't use subprocess.check_output
...
This function was added in Python 2.7 and we're currently targetting 2.6 as a
minimum version. Replaced with a function in util.
2012-11-01 11:59:02 -07:00
Jakob Schnitzer
cf98bfcbe6
convert: write tags from library to copied files
2012-10-25 01:05:06 +02:00
Adrian Sampson
02fd9bf809
convert: embed into destination file, not source file
...
Paging @yagebu: I think the old version of the code would embed album art into
the wrong file. Please correct me (and accept my apologies) if I'm wrong
though.
2012-10-24 15:17:00 -07:00
Adrian Sampson
dcb9ad7373
fix several non-unicode logging statements
...
A user reported a problem with one of the logging statements where .format()
tried to convert a Unicode string to bytes because the log message was '', not
u''. As a rule, we should ensure that all logging statements use Unicode
literals.
2012-10-24 15:14:33 -07:00
Jakob Schnitzer
54f29812cf
convert: fix breakage due to recent API changes
2012-10-21 13:35:41 +02:00
Jakob Schnitzer
492f168124
convert: Fix problem with "threads" config option
2012-10-20 13:25:25 +02:00
Jakob Schnitzer
58ba4b3d75
convert: fix album art embedding
2012-10-18 18:35:25 +02:00
Adrian Sampson
ce190fbe3b
merge
2012-10-17 19:47:31 -07:00
Jakob Schnitzer
26dfe38bb0
convert: Write tags from library instead of copying them
2012-10-17 21:12:31 +02:00
Adrian Sampson
cc8ead7e34
convert: atomic mkdirall() call
2012-10-15 19:53:17 -07:00
Adrian Sampson
526e82feaf
move cpu_count to util module; credit @storrgie
2012-10-14 14:09:03 -07:00
Adrian Sampson
6b7d9a6f40
merge pull request #56 (thread count detection)
2012-10-14 14:01:04 -07:00
Adrian Sampson
fcf5ec0b68
convert: low-level tweaks
...
Mainly adding some careful handling of paths (pass through displayable_path
before logging, etc.).
2012-10-12 22:19:27 -07:00
Adrian Sampson
71a5a5b02f
only load plugins from specified modules
...
Eliminate the __subclasses__ trick for finding all plugins. Now we explicitly
look in each plugin module for a plugin class. This allows us to import plugin
modules with unintentionally loading them. This lets us reuse the image
embedding machinery without copypasta.
2012-10-12 21:55:54 -07:00
Andrew G. Dunn
4ee39ed9da
Forgot to actually call the function
2012-10-12 08:25:28 -04:00
Andrew G. Dunn
365fa4347e
Added processor/thread detection, by default will now use maximum available processor count instead of 2. Idea adapted from soundconverter, credits in function.
2012-10-12 07:48:52 -04:00
Jakob Schnitzer
e316d0ea30
convert: PEP8, changelog note and license
2012-10-11 17:10:28 +02:00
Jakob Schnitzer
115c0e7410
coonvert: make sure temporary are deleted if encoding is interrupted
2012-10-10 10:15:51 +02:00
Jakob Schnitzer
8f9b4f0362
convert: remove bloat that's not needed after the fix to pipeline
2012-10-09 23:11:05 +02:00
Jakob Schnitzer
a2ff20979f
convert: Changed threading model to use beets.util.pipeline, fix embed
2012-10-09 14:05:54 +02:00
Jakob Schnitzer
aa3a66daad
Add option to disable embedding
2012-10-08 11:26:33 +02:00
Jakob Schnitzer
d1ab9267d0
Added lots of options, support MP3 as source
2012-10-07 22:19:15 +02:00
Jakob Schnitzer
3d580fc933
Added threads, cleaned up some of the code
2012-10-05 23:04:50 +02:00
Jakob Schnitzer
bbf974e581
First version of convert plugin
2012-10-05 20:56:59 +02:00