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|
|Recently, public attention has been called to a new online
user-tracking method that is purported to be nearly impossible to
block. Called "canvas fingerprinting,"the technique relies on
forcing the browser to generate an image on the client side of the
connection—an image that is unique enough to serve as a
fingerprint for the browser that created it. In fact, the basis for
this fingerprinting approach is several years old, but it does now
seem to be in use in the wild. Whether or not it truly amounts to an
insurmountable blocking challenge, however, remains to be seen.|
|[$] Browser tracking through "canvas fingerprinting"|
|The ownCloud 7 release has been announced.
The headline feature this time around appears to be server-to-server
sharing, but it also has mobile web browser support, file activity
notifications, and an improved management interface.
|ownCloud 7 released|
|CentOShas updated firefox(C6; C5:
multiple vulnerabilities), firefox,
xulrunner(C7: multiple vulnerabilities), libvirt(C7: information disclosure/denial of
service), nss, nspr(C7: code execution),
nss(C5; C6: code execution), nss-util(C6: code execution), nspr(C6; C5: code
execution), and thunderbird(C5; C6: multiple vulnerabilities).
Debianhas updated acpi-support(privilege escalation) and mysql-5.5(unidentified vulnerabilities).
Fedorahas updated libXfont(F19:
multiple vulnerabilities), python-simplejson(F19: information
disclosure), and readline(F20: insecure temporary files).
Oraclehas updated firefox(OL6:
multiple vulnerabilities), nss, nspr(OL6; OL5: code
execution), and thunderbird(OL6: multiple vulnerabilities).
Red Hathas updated firefox(RHEL5,6,7: multiple vulnerabilities), httpd(RHEL5,6; RHEL7: multiple vulnerabilities), httpd24-httpd(RHSC1: multiple
vulnerabilities), kernel-rt(RHE MRG2.5:
multiple vulnerabilities), libvirt(RHEL7:
information disclosure/denial of service), nss(RHEL5.6,5.9,6.2,6.4: code execution), nss, nspr(RHEL5,7: code execution), nss, nspr(RHEL6: multiple vulnerabilities),
and thunderbird(RHEL5,6: multiple vulnerabilities).
Scientific Linuxhas updated firefox(SL5,6: multiple vulnerabilities), httpd(SL5,6: multiple vulnerabilities),
nss and nspr(SL6; SL5: code execution), and thunderbird(SL5,6: multiple vulnerabilities).
Ubuntuhas updated acpi-support(12.04 LTS: privilege escalation), firefox(14.04 LTS, 12.04 LTS:
multiple vulnerabilities), libtasn1-3,
libtasn1-6(14.04 LTS, 12.04 LTS, 10.04 LTS: multiple
vulnerabilities), and thunderbird(14.04 LTS, 12.04 LTS: multiple vulnerabilities).
|Security advisories for Wednesday|
|Firefox 31 has been released. This version adds a search field to the new
tab page, adds support of Prefer:Safe http header for parental control, and
it will block malware from downloaded files. See the release
notesfor more information.
|Firefox 31 released|
|Rick Spencer introducesUbuntu's community team. "First, we created the role Community Team
Manager. Notice the important inclusion of the word ?Team?. This person?s
job is not to ?manage the community?, but rather to organize and lead the
rest of the community team members. This includes things like project
planning, HR responsibilities, strategic planning and everything else
entailed in being a good line manager. After a rather competitive interview
process, with some strong candidates, one person clearly rose to the top as
the best candidate. So, I would like formally introduce David Planella as
the Community Team Manager!"Michael Hall, Daniel Holbach, and
Nicholas Skaggs are the other members of the team.
|Spencer: The Community Team|
|Dan Walsh looks at
container security, on Opensource.com. "I hear and read about a
lot of people assuming that Docker containers actually sandbox
applications?meaning they can run random applications on their system as
root with Docker. They believe Docker containers will actually protect
their host system [...] Stop assuming that Docker and the Linux kernel protect you from malware."|
|Docker security with SELinux (Opensource.com)|
|CentOShas updated java-1.6.0-openjdk(C7; C6; C5: multiple vulnerabilities).
Fedorahas updated couchdb(F20; F19: denial of service), erlang-ibrowse(F20; F19: denial of service), php-ZendFramework(F20; F19: SQL injection), and polarssl(F20; F19: denial of service).
Oraclehas updated java-1.6.0-openjdk(OL6; OL5: multiple vulnerabilities).
Red Hathas updated java-1.6.0-openjdk(RHEL5,6,7: multiple
vulnerabilities) and java-1.6.0-sun(RHEL5,6,7: multiple vulnerabilities).
Scientific Linuxhas updated java-1.6.0-openjdk(SL5,6: multiple vulnerabilities).
Ubuntuhas updated cups(privilege escalation).
|Tuesday's security updates|
|Debianhas updated drupal7(multiple vulnerabilities) and ruby-activerecord-3.2(SQL injection).
Fedorahas updated cups(F20:
privilege escalation), dpkg(F20: two file
modification via path traversal flaws), java-1.7.0-openjdk(F20: multiple
vulnerabilities), kernel(F20: privilege
escalation), ocsinventory(F20; F19: cross-site scripting), and transmission(F20: code execution).
openSUSEhas updated privoxy(13.1: privoxy requires privoxyd), dbus-1(13.1; 12.3:
two denial of service flaws), eet(13.1,
12.3: code execution), lzo(13.1, 12.3:
code execution), and php(13.1, 12.3: multiple vulnerabilities).
|Security advisories for Monday|
|The Electronic Frontier Foundation has announceda project to create a new distribution for wireless home routers. It is
based on CeroWrtand is meant to make it easy and safe to run an open wireless network,
include all of the latest bufferbloat fixes, and "advance the state
of the art in consumer Wi-Fi router security and begin turning back the
growing tide of attacks against them."The work is in an early
state and only runs on Netgear WNDR3800 routers for now; testers and
contributors are eagerly sought.
|The EFF's open wireless router project|
|The 3.16-rc6release is out, and Linus is
starting to think that things are still too active. "Anyway, rc6
still isn't all *that* big, so I'm not exactly worried,
but I am getting to the point where I'm going to start calling people
names and shouting at you if you send me stuff that isn't appropriate
for the late rc releases. Which is not to say that people did: while
rc6 is bigger than I wished for, I don't think there's too much
obviously frivolous in there. But I'll be keeping an eye out, and I'll
be starting to get grumpy (or grumpiER) if I notice that people aren't
being serious about trying to calm things down."|
|Kernel prepatch 3.16-rc6|
|Greg Kroah-Hartman has released four new stable kernels: 3.15.6,
3.14.13, 3.10.49, and 3.4.99; each contains important updates
|Four new kernel releases|
|Debianhas updated fail2ban(multiple vulnerabilities), openjdk-6(multiple vulnerabilities), and polarssl(denial of service).
Red Hathas updated java-1.7.0-oracle(multiple
vulnerabilities) and kernel(RHEL6: multiple vulnerabilities).
Ubuntuhas updated liblwp-protocol-https-perl(14.04:
|Friday's security updates|
|OpenSUSE board chair Vincent Untz has announced that he will be stepping
down from the position to free time for other priorities.
"I'm stepping down with regrets because these two years as chairman have
been totally awesome, and I would love to keep contributing to the
project that way. But I know I won't have enough time to dedicate to
being a chairman in the months to come, and I'm a strong believer that
board members (including the chairman) should be active in their role.
Having motivation is extremely important, of course, but free time is
simply essential."SUSE has chosenRichard Brown as Vincent's successor.
|Changes on the openSUSE board|
|Six researchers (including Julia Lawall of the Coccinelleproject) have just released a paper [PDF](abstract) that looks at the faults in the 2.6 kernel. "In August 2011, Linux entered its third decade. Ten years before, Chou et al. published a study of faults found by applying a static analyzer to Linux versions 1.0 through 2.4.1. A major result of their work was that the drivers directory contained up to 7 times more of certain kinds of faults than other directories. This result inspired numerous efforts on improving the reliability of driver code. Today, Linux is used in a wider range of environments, provides a wider range of services, and has adopted a new development and release model. What has been the impact of these changes on code quality? To answer this question, we have transported Chou et al.'s experiments to all versions of Linux 2.6; released between 2003 and 2011. We find that Linux has more than doubled in size during this period, but the number of faults per line of code has been decreasing. Moreover, the fault rate of drivers is now below that of other directories, such as arch. These results can guide further development and research efforts for the decade to come. To allow updating these results as Linux evolves, we define our experimental protocol and make our checkers available."(Thanks to Asger Alstrup Palm.)
|Faults in Linux 2.6|
|Over at Opensource.com, Rikki Endsley interviewsSpencer Hunley, who will be giving a talk on accessibility at LinuxCon NA in August. Hunley also spoke at last year's LinuxCon NA and, shortly after that, helped form the Universal TuxGoogle+ community to work on accessibility in Linux. "Built-in, easy to use and understand accessibility support is hard to find in many distributions. Can you tell me the key combination to activate that support in Ubuntu? How about any other distro? The fact is that although it's there, it may not be easy to locate and/or use. When addressing this, focusing on independence is vital. No one wants to have to call upon someone else to help them install a new OS, or to utilize an application. This is especially true for people with disabilities; the learning curve can be nearly impossible, which leaves little in the way of choice in the FOSS world, depending on your abilities."|
|The state of accessibility in Linux and open source software (Opensource.com)|