mp3riot (formerly known as f2html.pl)
I decided to rename f2html.pl into mp3riot. the reason is, that
the name f2html.pl does not clearly indicate, for what the program
is best suited for. Because the program has grown so much (and
because the the name should be more attractive to get more users),
a renaming seems to be a must to me.
There are some important news about mp3riot / f2htmlpl. Please see the NEWS
for further details.
Mp3riot (formerly known as f2html.pl) is a command line utility that searches recursively through directories,
builds a file list (with additional file information), and generates html files, plylists, etc. The output can be controlled,
links can be corrected, and more. The script is mainly desigend to create Web pages, playlists, and databases
for mp3-files, but can also used for other purposes.
Read the manual for further details.
- supports playlists in m3u, pls, and xml format
- supports sql output
- creates html pages, templates can be used
- supports advanced grouping methods
- supports slection by date ranges, file extensions, and by random
- supports renaming of mp3 files using id3tag information, templates or guessing can be used
- advanced string manipulation methods
- and much more ...
Latest version: mp3riot-1.3.zip
Older versions of mp3riot / f2html.pl:
You can also download a windows executable compiled with perl2exe. Then you need not
to install perl. But I have not testet the functionality of the executable in detail. So it is best
to use perl and the source of mp3riot!
Windows binaries of mp3riot:
perl mp3riot [options]
You can use nearly all commands in a config file (and it is the best to do it this way!). The syntax then changes sligthly, so that, for example,
--dir changes to dir=
- -h, --help: Show this screen and exit
- -k, --mkconf:Use an assistant to write a config file
- -o, --os win/unix: Default "unix", otherwise windows
- -Q, --sortby value: Default is NAME (the filename). You can sort the filelist by the following criteria: URLNAME, SHOWNAME, DIR, NAME, TITLE, ARTIST, ALBUM, YEAR, COMMENT, GENRE, TRACKNUM, SIZE, MODTIME, VBR, BITRATE, FREQUENCY, MINUTES, SECONDS, FIRSTCHAR
- -n, --doublicates: Check for doublicates of files by their filename
- -D, --md5doublicates: Check for doublicates of files by their MD5 sum
- -V, --seekvalues <n,+-n,n>: Three values that have to be seperated by ",". This is an useful option for --md5doublicates.
The first one is the offset in bytes, the second is
the number of bytes to seek (and the direction), and
the last value tells the program where to start from (1 means to
start from the begining of a file, 2 means to start
from the end of a file. So, a combination of 1000,-1128,2
tells the programm to start 1128 bytes before the file ends
(id3v1 tag is 128 bytes long!) and use
1000 bytes for calculation of md5 sums.
- -b, --dbfile file: Write database to a file for searching it
- -m --m3u file: Write a m3u playlist file. Directory and filename or GROUPPATH for writing m3u files for groups.
- -X --xml file: Write a xml playlist file. Directory and filename or GROUPPATH for writing xml files for groups.
- -L --pls file: Write a pls playlist file. Directory and filename or GROUPPATH for writing pls files for groups.
- -W, --b4s file: Write a b4s playlist file. Directory and filename or GROUPPATH for writing b4s files for groups.
- -t, --html file: Write a html file. Directory and filename or GROUPPATH for writing html files for groups.
- -a, --http name: Define the http address for url
- -r, --remove: Remove id3tags (do you know what you are doing?)
- -i, --mp3info: Use mp3/ogg info for html output
- -e, --ext: Remove file extensions in html output
- -f, --filesize: Use filesize for html output
- -c, --check ext: Select files by their extension(s) (e.g. mp3). For every extension use a seperate flag!
- -z, --skip number: Skip n elements of mount/directories/names
- -p, --conf file: Use a config file
- -w, --utf8 file: File with UTF-8 code for replacements in links
- -q, --nocs: Do sorting not case sensitive
- -j, --statfile file: Write statistics to file
- -d, --dir directory: Define the (multiple) directory(ies) the mp3s are stored in. For every directory use a seperate flag!
- -g, --sql file: Filename to store sql table in (only for mp3 and ogg!)
- -y, --replace file: Name of replacement file; in the file use <string_1>=<string_2> to transform <string_1> into <string_2>;
special characters like a backslash have to be preceeded by a backslash "\\" (used for directories)
- -s, --seperate path: Write seperate html files for every character
- -R, --rename: Renames mp3 and ogg file using their id3tag. The use of rename_template in the configfile is optional. If rename_template is not used,
the program tries to create a filename like: ARTIST - ALBUM - TRACKNUMBER - TITLE by using the id3tag. It assumes, that the filenames have a similar format
and tries to guess, whether the id3tag has enough information to create a better filename. Old and new filenames are stored in RENAME.bak
- -B, --renameback: Renames files back using the file RENAME.bak
- -T, --templatesHtml templates are used. They have to be defined in the conmfig file using the commands html_head, html_change, html_body,
html_footer, html_sep_head. See the README for avalable templates!
- -G, --groupfile file: Filename for grouping information: <groupname1>=<TYPE>=<string1>,<string2>,...
Prossible types are: EQUAL, NAME, DIR, TITLE, ARTIST, ALBUM, YEAR, COMMENT, GENRE, TRACKNUM, SIZE, MODTIME, VBR, BITRATE, FREQUENCY, MM, SS, FIRSTCHAR
- -P, --grouppath path: The path, where to write the html files for group
- -O, --older number: Only files are selected, having a modification time higher than the specified days
- -Y, --younger number: Only files are selected, having a modification time less than the specified days
- -I, --id3tag: Use the id3 tag to get infos
- -S, --random number: Percentage of file to select randomly (e.g. 50 to select 50% of files/every second file)
Additionally, in the config file it is possible to use the commands:
- exec= param: Execute system command. This command can be used multiple times
- rename_template=string:string with templates for renaming files by their id3tag (to be used together with --rename)
The following rename templates are available: **TITLE**, **ARTIST**, **ALBUM**, **YEAR**, **COMMENT**, **GENRE**. **TRACKNUM**
- html_head= string: Html code for the head
- html_change= string: Html code if the first character between two file names change
- html_body= string: Html code for each filename
- html_footer= string: Html code for the foot
- html_sep_head= string: Html code for the head seperate html files by first character
The following html templates are available: **SUMOFFILES**, **SUMOFMEGS**, **DATE**, **URLNAME**, **SHOWNAME**, **DIR**, **NAME**, **TITLE**,
**ARTIST**, **ALBUM**, **YEAR**, **COMMENT**, **GENRE**, **TRACKNUM**, **SIZE**, **MODTIME**, **VBR**, **BITRATE**, **FREQUENCY**, **MINUTES**,
**SECONDS**, **HTMLINDEX**, **FIRSTCHAR**
- extended grouping fuction for all playlistfiles
- renaming of special characters for filenames og groups
- support of b4s playlistformat
- sorting of filelist by various criterias of id3tag, mp3 and
- file information (e.g. ARTIST, BITRATE etc.)
- extended output of doublicate function by diretory names
- added FIRSTCHAR as a value for grouping
- Fixed bug in sql output
- Flexible search for doublicate files using md5 sums
- search for doublicates by filenames seperated from search function
- fixed bug in xml output
- filesize in html output is now rouded
- replaced progress bar by counter in percentage
- added counter for collected files
- fixed bug in index in html output
- fixed bug in html output for grouping
- extended grouping function by new type EQUAL
- bugfix in pls output
- Renamed f2html.pl into mp3riot
- Fixed output of playlist in M3U format, so that the M3U file is now containing full information
- Fixed bug for retreaving the TITLE of an id3tag
- Added output of playlist in XML format
- Added output of playlist in PLS format
- Added random fileselection for random playlists
- Added the tracknumber for sql output
- Added **TRACKNUM** (tracknumber) and as a template variable for html output
- Added TRACKNUM (tracknumber) as a variable for groupings
- Added tracknumber and comment for db output
- Fixed bug in renaming function when special characters are present in the id3tag
- Added rename_template to do renaming of files using their id3tag in a flexible way
- Fixed a bug in renameback
- Fixed some smaller bugs
- Rebuild the internal data structure completely
- Removed option for fast sorting (not necessary any more)
- Implemented selection of files by their modification time (younger and/or older than days from now)
- Implemented grouping of files by string matching between group defninitions by various types
- Implemented variable html-code dsefinitions and templates
- Changed definition for string replacement
- f2html.pl now comes with a new version of Info.pm from MP3-Info-1.02 by Chris Nandor
- The use of the id3tag for sql and html output is now optional
- Manpage is not supported any more.
- Fixed a commandline parameter bug where the parameters were handled non case sensitive. Now there are handled case sensitive.
As a result the functions RENAME and RENAMEBACK did not work when called with the short command line argument.
- Fixed a commandline parameter bug that occured with Perl 5.8.0 and Getopt::Long 2.32. The -s flag in line 1 of the perl script
causes the program to count the command line parameters in an usual way, so that command line parameters got disturbed and did
not work any more.
- Some changes in the documentation.
- New option to rename files using their id3tag.
- New option to rename files back.
- Some code fixes.
- Usage of the replace option has changed.
- Bug for the option "check" in config file and configuration wizard fixed
- Bug for the check of the mp3 extension when mp3info was enabled fixed.
- Bug of sum of megs in html output fixed.
- Bug in mp3table.sql fixed.
- Basic ogg vorbis support implemented (thanks to Jens Burkal).
- New method (experimental) for faster sorting. Useful for indexing huge number of files or mp3 files
with additional information.
- New option for checking for dublicates of filenames.
- Now f2html.pl comes wioth a new version of Info.pm from MP3-Info-1.01 by Chris Nandor.
- Fixed problem with sql data output when files contain the charakter " ' ".
- Name of option "hex" changed to "utf8".
- Implemeted progress bar for prepating html files.
- More information about what the program is doing.
- Now f2html comes with a new version of Info.pm from MP3-Info-0.91 by Chris Nandor.
- Minor Bugfixes.
- New option to create sql database.
- New option to create a config file.
- Some checks and corrections for pathnames.
- Only existing characters are written out at the top of a html file.
- Rewrite of sum of files and sizes. Important for writing seperate html files for every character.
- The option -q has been implemented and allows for doing the procedures in a non case sensitive way.
- The option -j has been implemented. A html file with statistics can be written out.
- The manual has been updated.
- The option -c has been updated. Now this option can be used more
than only one time. So one is able to select file by different
back to top
| Whats New|
|[2005-02-18] mp3riot version 1.3 released|
|[2004-10-08] mp3riot version 1.2 is out.|
|[2004-04-30] Added section Bridging|
|[2004-01-09] working progress on mp3riot version 1.2|
|Debianhas updated ntfs-3g(incomplete fix in previous update).
Debian-LTShas updated ntfs-3g(incomplete fix in previous update).
Red Hathas updated kernel(RHEL6.4: privilege escalation) and qemu-kvm(RHEL6.5: code execution).
Ubuntuhas updated ntfs-3g(15.04: incomplete fix in previous update) and openldap(15.04, 14.10, 14.04, 12.04: denial of service).
|Wednesday's security updates|
|The GNOME community is mourning the loss of developer Marco Pesenti Gritti,
who passed away on May 23. "He was the most passionate and dedicated hacker I knew, and I know he was
extremely respected in the GNOME community, for his work on Epiphany,
Evince and Sugar among many others, just like he was at litl. Those who
knew him personally know he was also an awesome human being."|
|Mourning Marco Pesenti Gritti|
|Scott Kitterman has posted a
series of emailsaround the the Ubuntu Community Council's decision to
remove Jonathan Riddell as the leader of the Kubuntu project. He has also
his intentto leave the Ubuntu community. "I also wish to extend
my personal apology to the Kubuntu community for keeping this private for
as long as we did. Generally, I don?t believe such an approach is
consistent with our values, but I supported keeping it private in the hope
that it would be easier to achieve a mutually beneficial resolution of the
situation privately. Now that it?s clear that is not going to happen, I
(and others in the KC) could not in good faith keep this private."|
|Jonathan Riddell forced out of Kubuntu|
|If you run PostgreSQL and have applied one of the updates that were
released on May 22, it would be a good idea to read this
pageabout an unfortunate bug in those releases. In some
cases, the problem can cause the server to fail to restart after a crash.
There is a new release in the works; meanwhile, a workaround is available.
|Trouble with the May 22 PostgreSQL update|
|Ars Technica takes
a lookat the latest malware threat. "A worm that targets cable and DSL modems, home routers, and other embedded computers is turning those devices into a proxy network for launching armies of fraudulent Instagram, Twitter, and Vine accounts as well as fake accounts on other social networks. The new worm can also hijack routers' DNS service to route requests to a malicious server, steal unencrypted social media cookies such as those used by Instagram, and then use those cookies to add "follows"to fraudulent accounts. This allows the worm to spread itself to embedded systems on the local network that use Linux-based operating systems.
The malware, dubbed "Linux/Moose"by Olivier Bilodeau and Thomas Dupuy of the security firm ESET Canada Research, exploits routers open to connections from the Internet via Telnet by performing brute-force login attempts using default or common administrative credentials. Once connected, the worm installs itself on the targeted device."|
|The Moose is loose: Linux-based worm turns routers into social network bots (Ars Technica)|
|Arch Linuxhas updated nbd(denial of service), pgbouncer(denial of service), postgresql(multiple vulnerabilities), webkitgtk(information disclosure), and webkitgtk2(information disclosure).
Debianhas updated ipsec-tools(denial of service), nbd(denial of service), postgresql-9.1(multiple vulnerabilities), postgresql-9.4(multiple vulnerabilities), tiff(multiple vulnerabilities), and zendframework(multiple vulnerabilities).
Debian-LTShas updated ntfs-3g(privilege escalation).
Fedorahas updated firefox(F22:
multiple vulnerabilities), hostapd(F22:
denial of service), java-1.8.0-openjdk(F22: file overwrites), kernel(F20: two
vulnerabilities), libarchive(F21: denial
of service), LibRaw(F22; F20: denial of service), mingw-LibRaw(F22; F22;
F20: denial of service), openstack-glance(F22: access restriction
bypass), php(F22: multiple
CRLF injection), phpMyAdmin(F22: two
vulnerabilities), qemu(F22; F20: code execution), quassel(F22: denial of service), suricata(F22: denial of service), thunderbird(F22: multiple vulnerabilities),
wordpress(F22: cross-site scripting), and xen(F22; F21; F20: privilege escalation).
Mageiahas updated chromium-browser-stable(multiple vulnerabilities) and kernel(memory corruption).
openSUSEhas updated coreutils(13.2: multiple vulnerabilities), firefox(13.2, 13.1: multiple vulnerabilities), libraw(13.2, 13.1: denial of service), LibVNCServer(13.2: code execution), quassel(13.2, 13.1: SQL injection), thunderbird(13.2, 13.1: multiple vulnerabilities), and wireshark(13.2; 13.1: multiple vulnerabilities).
Red Hathas updated chromium-browser(RHEL6: multiple vulnerabilities).
SUSEhas updated KVM(SLES11SP2:
code execution), MySQL(SLE11SP3: multiple
vulnerabilities), and Xen(SLES11SP2; SLES11SP1; SLES10SP4: two vulnerabilities).
Ubuntuhas updated kernel(14.04:
denial of service), linux-lts-trusty(12.04: denial of service), and postgresql-9.1,
postgresql-9.3, postgresql-9.4(15.04, 14.10, 14.04, 12.04: multiple vulnerabilities).
|Security advisories for Tuesday|
|The Fedora 22 release is out. "If this release had a
human analogue, it'd be Fedora 21 after it'd been to college,
landed a good job, and kept its New Year's Resolution to go to the
gym on a regular basis. What we're saying is that Fedora 22 has
built on the foundation we laid with Fedora 21 and the work to
create distinct editions of Fedora focused on the desktop, server,
and cloud (respectively). It's not radically different, but there
are a fair amount of new features coupled with features we've
already introduced but have improved for Fedora 22."LWN's preview of Fedora 22was published in the
May 21 Weekly Edition.
|Fedora 22 released|
|An anonymous reader has pointed out that Mandriva is
currently being liquidated(page in French). The company brought in
?553,000 in 2013, but that is seemingly not enough to keep it going in
2015. It is a sad end for a company that has been pursuing the desktop
Linux dream since 1998.
|The end for Mandriva|
|The fifth 4.1 prepatchis out for testing.
"So we're on schedule for a normal 4.1 release, if it wasn't for the
fact that the timing looks like the next merge window would hit our yearly
family vacation. So we'll see how that turns out, I might end up delaying
the release just to avoid that (or just delay opening the merge
|Kernel prepatch 4.1-rc5|
|There have been two bugs causing filesystem corruption in the news
recently. One of them, a bug in ext4, has gotten the bulk of the
attention, despite the fact that it is an old bug that is hard to trigger.
The other, however, is recent and able to cause data loss on
filesystems installed on a RAID 0 array. Both are interesting
examples of how things can go wrong, and, thus, merit a closer look.
|[$] A tale of two data-corruption bugs|
|At his blog, Bastien Nocera announcesthe 1.0 release of iio-sensor-proxy,
a framework for accessing the various environmental sensors (e.g.,
accelerometer, magnetometer, proximity, or ambient-light sensors) built
in to recent laptops. The proxy is a daemon that listens to the
Industrial I/O (IIO) subsystem and provides access to the sensor
readings over D-Bus. As of right now, support for ambient-light
sensors and accelerometers is working; other sensor types are in
development. The current API is based on those used by Android and
iOS, but may be expanded in the future. "For future versions,
we'll want to export the raw accelerometer readings, so that
applications, including games, can make use of them, which might bring
up security issues. SDL, Firefox, WebKit could all do with being
adapted, in the near future."|
|Nocera: iio-sensor-proxy 1.0 is out!|
|Arch Linuxhas updated chromium(multiple vulnerabilities).
Debianhas updated chromium-browser(multiple vulnerabilities), fuse(privilege escalation), and ntfs-3g(privilege escalation).
SUSEhas updated KVM(SLES11
SP1: multiple vulnerabilities),
SUSE Manager Server 1.7(SLE11 SP2: multiple vulnerabilities), and Xen(SLE11 SP3: multiple vulnerabilities).
Ubuntuhas updated apport(two privilege escalation vulnerabilities), fuse(privilege escalation), ntfs-3g(privilege escalation), oxide-qt(14.04, 14.10, 15.04: multiple vulnerabilities), and python-dbusmock(14.04, 14.10, 15.04:
|Friday's security updates|
|The announcement of Clear Containers(which guest author Arjan van de Ven describedin an LWN article from this week) seems to have sparked some interesting work on QEMU that resulted in qboot: "a minimal x86 firmware that runs on QEMU and, together with
a slimmed-down QEMU configuration, boots a virtual machine in 40
milliseconds on an Ivy Bridge Core i7 processor."Paolo Bonzini announced the project (code is available at git://github.com/bonzini/qboot.git), which is quite new: "The first commit to qboot is more or less 24 hours old, so there is
definitely more work to do, in particular to extract ACPI tables from
QEMU and present them to the guest. This is probably another day of
work or so, and it will enable multiprocessor guests with little or no
impact on the boot times. SMBIOS information is also available from QEMU."|
|Announcing qboot, a minimal x86 firmware for QEMU|
|Debianhas updated libmodule-signature-perl(multiple vulnerabilities).
Debian-LTShas updated dnsmasq(information disclosure).
Fedorahas updated wordpress(F21; F20:
Oraclehas updated docker(OL7; OL6: multiple vulnerabilities).
Red Hathas updated java-1.5.0-ibm(RHEL5&6: multiple vulnerabilities, one from 2005)
and java-1.7.1-ibm(RHEL6&7: multiple vulnerabilities, one
SUSEhas updated gstreamer-0_10-plugins-bad(SLE11SP3: code
execution) and xen(SLE12: multiple vulnerabilities).
|Security advisories for Thursday|
|The LWN.net Weekly Edition for May 21, 2015 is available.
|[$] LWN.net Weekly Edition for May 21, 2015|