ogg_album_tagger 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/ogg_album_tagger/version.rb +1 -1
- metadata +3 -9
- data/.gitignore +0 -15
- data/Gemfile +0 -4
- data/LICENSE.txt +0 -22
- data/README.md +0 -161
- data/Rakefile +0 -2
- data/ogg_album_tagger.gemspec +0 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6d13c462c83f93828d568095096c34e0c17c494a
|
4
|
+
data.tar.gz: f8831db62a56402c7787ee766382d3d70205803d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aaaff467e4e5c9d31b176d187f03145bc982b86e54b7de0862f50ed9cf6267e5d53419c1609007cd821be1c5bfe47cfbf9a2e528e4ff344513b0d0c0f5c0c4c0
|
7
|
+
data.tar.gz: 02fc749bd1e46d3fb9c8a980d2e70fd2ad5221cc218138db207901cd25b0640a9580d07d220b34d154f387d7b71f282a21b2b0819ae7ee69022bc3b81a68c671
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ogg_album_tagger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cyrille Faucheux
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-02-
|
11
|
+
date: 2015-02-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -74,18 +74,12 @@ executables:
|
|
74
74
|
extensions: []
|
75
75
|
extra_rdoc_files: []
|
76
76
|
files:
|
77
|
-
- ".gitignore"
|
78
|
-
- Gemfile
|
79
|
-
- LICENSE.txt
|
80
|
-
- README.md
|
81
|
-
- Rakefile
|
82
77
|
- bin/ogg-album-tagger
|
83
78
|
- lib/ogg_album_tagger/exceptions.rb
|
84
79
|
- lib/ogg_album_tagger/library.rb
|
85
80
|
- lib/ogg_album_tagger/picture.rb
|
86
81
|
- lib/ogg_album_tagger/tag_container.rb
|
87
82
|
- lib/ogg_album_tagger/version.rb
|
88
|
-
- ogg_album_tagger.gemspec
|
89
83
|
homepage: https://github.com/Sigill/OggAlbumTagger
|
90
84
|
licenses:
|
91
85
|
- MIT
|
@@ -109,5 +103,5 @@ rubyforge_project:
|
|
109
103
|
rubygems_version: 2.2.2
|
110
104
|
signing_key:
|
111
105
|
specification_version: 4
|
112
|
-
summary: Interactive edition of ogg tags
|
106
|
+
summary: Interactive edition of ogg tags with support for whole albums.
|
113
107
|
test_files: []
|
data/.gitignore
DELETED
data/Gemfile
DELETED
data/LICENSE.txt
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
Copyright (c) 2014 Cyrille Faucheux
|
2
|
-
|
3
|
-
MIT License
|
4
|
-
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
-
a copy of this software and associated documentation files (the
|
7
|
-
"Software"), to deal in the Software without restriction, including
|
8
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
-
permit persons to whom the Software is furnished to do so, subject to
|
11
|
-
the following conditions:
|
12
|
-
|
13
|
-
The above copyright notice and this permission notice shall be
|
14
|
-
included in all copies or substantial portions of the Software.
|
15
|
-
|
16
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
-
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
-
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
-
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
DELETED
@@ -1,161 +0,0 @@
|
|
1
|
-
# OggAlbumTagger
|
2
|
-
|
3
|
-
OggAlbumTagger is an interactive command line tool that help you tag ogg files. As the name suggest, OggAlbumTagger is able to manage whole albums and compilations.
|
4
|
-
|
5
|
-
## Why OggAlbumTagger
|
6
|
-
|
7
|
-
I wanted a tool that would give me a full and easy access to all tags and would integrate some logic to quickly tag full albums or compilations.
|
8
|
-
|
9
|
-
Current solutions were not satisfying enough to me:
|
10
|
-
- No easy way to access non-standard tags.
|
11
|
-
- No/limited support for tags with multiple values.
|
12
|
-
- No easy way to tag full albums.
|
13
|
-
- Unwanted padding of numerical tags.
|
14
|
-
- No consistency concerning the case and order of the tags (ok, this point might be a bit excessive).
|
15
|
-
|
16
|
-
Therefore, I wrote OggAlbumTagger. It is designed to enforce some good tagging practices (you can read about them in the "How to properly tag your music" section below), but it will let you do whatever you want.
|
17
|
-
|
18
|
-
## Usage
|
19
|
-
|
20
|
-
$ ogg-album-tagger [options] files|directories
|
21
|
-
Options:
|
22
|
-
-a, --album Album mode, treat a single directory as an album.
|
23
|
-
-v, --version Display version information and exit.
|
24
|
-
-h, --help Print this help.
|
25
|
-
|
26
|
-
When executed, OggAlbumTagger extracts the tags of the ogg files passed as arguments (ogg files will be searched recursively in directories). Once done, you have to use the commands listed below to access and modify the tags.
|
27
|
-
|
28
|
-
When the `-a` option is passed, OggAlbumTagger will require album (or compilation) specific tags, will enforce a few more good tagging practices and will allow you to rename the album directory along with the tracks. You have to work on a single directory.
|
29
|
-
|
30
|
-
### Preliminary notes
|
31
|
-
|
32
|
-
- OggAlbumTagger works like most terminals. Arguments need to be separated by one or more spaces. If your argument contains special characters (spaces, single or double quotes), you can either escape them with a backslash (`\`) or enclose your argument with single or double quotes. Inside a double-quoted argument, you can escape double quotes with a backslash. Single-quoted arguments do not support escaping.
|
33
|
-
|
34
|
-
- OggAlbumTagger is capable of autocompletion and autosuggestion. Press the `tab` key to autocomplete your arguments, tag names, tag values and filenames. If you don't know what to do, double press `tab` to get suggestions.
|
35
|
-
|
36
|
-
- Tag names are case insensitive, but they will be written uppercase in files.
|
37
|
-
|
38
|
-
- Each tag can have multiple values (but in order to enforce good tagging practices, OggAlbumTagger will prevent you to do so for some tags).
|
39
|
-
|
40
|
-
- OggAlbumTagger uses UTF-8 (but currently I don't know what happen if your terminal is not in UTF-8).
|
41
|
-
|
42
|
-
### Available commands
|
43
|
-
|
44
|
-
- `ls`: lists the files you have access to. Files are sorted according to their filename and are indexed by their position in the list. The star at the beginning of a line indicates that the file is selected (see the `select` command for more details).
|
45
|
-
|
46
|
-
```
|
47
|
-
> ls
|
48
|
-
* 1: Queen - 1981 - Greatest Hits I - 01 - Bohemian Rapsody (1975).ogg
|
49
|
-
* 2: Queen - 1981 - Greatest Hits I - 02 - Another One Bites The Dust (1980).ogg
|
50
|
-
* 3: Queen - 1981 - Greatest Hits I - 03 - Killer Queen (1974).ogg
|
51
|
-
...
|
52
|
-
```
|
53
|
-
|
54
|
-
- `select arg1 [arg2...]`: allow to select a subset of files to work on. The following selectors are available:
|
55
|
-
- `all`: selects all the files.
|
56
|
-
- `i`: selects the file at position `i` in the list.
|
57
|
-
- `i-j`: selects the files from position `i` to position `j` in the list.
|
58
|
-
|
59
|
-
Index-based arguments can be prefixed by a `+` or `-` sign (e.g. `-3` or `+10-20`). In this case your selector will add or remove elements to the current selection.
|
60
|
-
|
61
|
-
Multiple selectors can be specified at once. Order is important.
|
62
|
-
|
63
|
-
- `show`: without argument, displays the tags of the selected files. Tags are sorted alphabetically, except for the `metadata_block_picture` which is listed last. The command can be restricted to a single tag XXX by using the `show tag xxx` command.
|
64
|
-
|
65
|
-
- `set <tag> value1 [value2...]`: tags each selected files with the specified tag and all specified values. If the tag does not exists, it is created. If it already exists, all previous values are discarded before adding the new ones. Duplicated values are discarded.
|
66
|
-
|
67
|
-
If the tag is `metadata_block_picture` (also aliased as `picture`), you have to provide the path to a jpeg or png file (autocomplete also works here) and optionally a description of the picture. OggAlbumTagger currently only supports the "front cover" type (see http://xiph.org/flac/format.html#metadata_block_picture).
|
68
|
-
|
69
|
-
- `add <tag> value1 [value2...]`: like `set`, but previous values are not discarded.
|
70
|
-
|
71
|
-
- `rm <tag> [value1...]`: removes the specified values of the specified tag for all selected files. If no value is specified, the tag is deleted.
|
72
|
-
|
73
|
-
- `auto tracknumber`: automatically sets the `TRACKNUMBER` tag based on the selection. Numbering starts at 1, there is no padding with zeros.
|
74
|
-
|
75
|
-
- `auto rename`: renames the directory and the files based on the tags. Different patterns are used:
|
76
|
-
|
77
|
-
- Single files
|
78
|
-
|
79
|
-
Directory: N/A
|
80
|
-
|
81
|
-
Ogg files: ARTIST - DATE - TITLE.ogg
|
82
|
-
|
83
|
-
- Albums
|
84
|
-
|
85
|
-
Directory: ARTIST - DATE - ALBUM
|
86
|
-
|
87
|
-
Ogg files: ARTIST - DATE - ALBUM - [DISCNUMBER.]TRACKNUMBER - TITLE.ogg
|
88
|
-
|
89
|
-
- Single artist compilations (albums where tracks have different dates, like a best-of)
|
90
|
-
|
91
|
-
Directory: ARTIST - ALBUMDATE - ALBUM
|
92
|
-
|
93
|
-
Ogg files: ARTIST - ALBUMDATE - ALBUM - [DISCNUMBER.]TRACKNUMBER - TITLE - DATE.ogg
|
94
|
-
|
95
|
-
- Compilations
|
96
|
-
|
97
|
-
Directory: ALBUM - ALBUMDATE
|
98
|
-
|
99
|
-
Ogg files: ALBUM - ALBUMDATE - [DISCNUMBER.]TRACKNUMBER - ARTIST - DATE - TITLE.ogg
|
100
|
-
|
101
|
-
`DISCNUMBER` and `TRACKNUMBER` tags are automatically padded with zeros in order to be of equal length and allow alphabetical sort.
|
102
|
-
|
103
|
-
Those characters are not authorized in file names: `\/:*?"<>|`. They will be removed.
|
104
|
-
|
105
|
-
In album mode, all ogg files will be moved to the root of the album.
|
106
|
-
|
107
|
-
- `check`: verify that you follow good tagging practices.
|
108
|
-
|
109
|
-
- `write`: writes the tags in the files.
|
110
|
-
|
111
|
-
- `quit`: discards all modifications and closes OggAlbumTagger.
|
112
|
-
|
113
|
-
## How to install
|
114
|
-
|
115
|
-
First, you need to install the `exiftool` tool and `libtag` (also called `taglib` on some systems) library (you need the development package, since the ruby gem will be built upon it). For example, on Debian/Ubuntu systems, run `apt-get install libimage-exiftool-perl libtag1-dev` from your terminal.
|
116
|
-
|
117
|
-
### From source
|
118
|
-
|
119
|
-
If you are planning to contribute, install the `rake` and `bundle` gems: `gem install rake bundle`.
|
120
|
-
|
121
|
-
#### Install
|
122
|
-
|
123
|
-
Run `bundle install` to install dependencies.
|
124
|
-
|
125
|
-
Run `rake install` to install the gem from the sources.
|
126
|
-
|
127
|
-
#### Run without installing
|
128
|
-
|
129
|
-
From the root of the source folder, run `bundle exec ogg-album-tagger ...`.
|
130
|
-
|
131
|
-
## How to properly tag your music
|
132
|
-
|
133
|
-
These good practices apply to Vorbis comments (the type of tags used in ogg files). There is nothing official about them, they only describe an efficient way to tag your music.
|
134
|
-
|
135
|
-
Always specify the ARTIST, TITLE and DATE (OggAlbumTagger requires a year) tags.
|
136
|
-
|
137
|
-
For albums, best-of (same artist, different dates) and compilations (different artists), specify the ALBUM and TRACKNUMBER. If there is multiple discs, use the DISCNUMBER tag. Do not pad numerical tags (TRACKNUMBER, DISCNUMBER) with zeros (if you media player is unable to know that 2 comes before 10, use another media player). If the tracks of your best-of/compilation are composed at different DATEs, use the ALBUMDATE tag.
|
138
|
-
|
139
|
-
On compilations (and only compilations), set the ALBUMARTIST tag to "Various artists". This way, you can easily search for compilations in your audio library.
|
140
|
-
|
141
|
-
The ALBUM, ARTIST, ALBUMARTIST and TITLE tags are designed for systems with limited display capabilities. When used, they must contain one single value.
|
142
|
-
|
143
|
-
You can specify alternate values using the ALBUMSORT, ARTISTSORT, ALBUMARTISTSORT and TITLESORT tags. The ARTISTSORT is especially usefull if you want to specify the name of all members of a group (so that searching for John Lennon will give you its performances from The Beatles years and from its experimental period with Yoko Ono), or if you want The Beatles to be listed at "B" or Bob Dylan to also be listed as "Dylan, Bob". If your media player does not support these *SORT tags, use another media player.
|
144
|
-
|
145
|
-
Its nice to have a GENRE (or several). Don't try to be too precise or too exhaustive, or it might make it harder to search by genre. Use the genres you are able to recognize. You also can split "hybrid" genres like "Pop-Rock".
|
146
|
-
|
147
|
-
Other standard tags: see [this page](http://www.xiph.org/vorbis/doc/v-comment.html) and [this one](http://age.hobba.nl/audio/mirroredpages/ogg-tagging.html). But you can achieve pretty good tagging using the tags listed above.
|
148
|
-
|
149
|
-
## TODO
|
150
|
-
|
151
|
-
Not every functionality in this list has to be implemented. Actually, I don't need most of them. If you have some time to spare, I'll be happy to accept your contributions.
|
152
|
-
|
153
|
-
* Support other audio formats: OggalbumTagger is built upon the [TagLib gem](http://robinst.github.io/taglib-ruby/), which support many audio formats. Theoretically, it is possible to support them in oggAlbumTagger (the name can be changed). In practice, I've no desire to play with those ugly ID3 tags and theirs versions and encodings. If you need this, it might be quicker for you to convert your music library to ogg (I've done it, no regret).
|
154
|
-
* Make the code modular, so that each available command live in a single class that handle it's own autosuggestion, autocompletion, execution... Ok, it requires to rewrite half of the program, but it would be cool.
|
155
|
-
* Fill tags from filenames or from some CDDB/FreeDB/... database. In the meantime, use [lltags](http://home.gna.org/lltag/).
|
156
|
-
* Export cover pictures.
|
157
|
-
* Whatever you feel useful...
|
158
|
-
|
159
|
-
## License
|
160
|
-
|
161
|
-
This tool is released under the terms of the MIT License. See the LICENSE.txt file for more details.
|
data/Rakefile
DELETED
data/ogg_album_tagger.gemspec
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
lib = File.expand_path('../lib', __FILE__)
|
3
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require 'ogg_album_tagger/version'
|
5
|
-
|
6
|
-
Gem::Specification.new do |spec|
|
7
|
-
spec.name = "ogg_album_tagger"
|
8
|
-
spec.version = OggAlbumTagger::VERSION
|
9
|
-
spec.authors = ["Cyrille Faucheux"]
|
10
|
-
spec.email = ["cyrille.faucheux@gmail.com"]
|
11
|
-
spec.summary = "Interactive edition of ogg tags in an album or a compilation."
|
12
|
-
spec.homepage = "https://github.com/Sigill/OggAlbumTagger"
|
13
|
-
spec.license = "MIT"
|
14
|
-
|
15
|
-
spec.files = `git ls-files -z`.split("\x0")
|
16
|
-
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
17
|
-
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
18
|
-
spec.require_paths = ["lib"]
|
19
|
-
|
20
|
-
spec.add_development_dependency "bundler", "~> 1.7"
|
21
|
-
spec.add_development_dependency "rake", "~> 10.0"
|
22
|
-
|
23
|
-
spec.add_runtime_dependency "exiftool", ["~> 0.6"]
|
24
|
-
spec.add_runtime_dependency "taglib-ruby", ["~> 0.7"]
|
25
|
-
end
|