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|
|The OpenSSL project looks
at its security recordfor the last year. "The acceptable
timeline for disclosure is a hot topic in the community: we meet CERT?s
45-day disclosure deadline more often than not, and we?ve never blown
Project Zero?s 90-day baseline. Most importantly, we met the goal we set
ourselves and released fixes for all HIGH severity issues in well under a
month. We also landed mitigation for two high-profile protocol bugs, POODLE
and Logjam. Those disclosure deadlines weren?t under our control but our
response was prepared by the day the reports went public."|
|OpenSSL Security: A Year in Review|
|The ownCloud Contributor Conference
2015(August 28-September 3 in Berlin, Germany) started off with some big
announcements, including the publishing of the User Data Manifesto 2.0, the
creation of the ownCloud Security Bug Bounty Program, and the release of
the ownCloud Proxy app. "Designed for those of you who want your own private, secure ?Dropbox? and don?t want the hassle of configuring routers, firewalls and DNS entries for access from anywhere, at any time, ownCloud Proxy is for you. It comes installed as an ownCloud community app in the new ownCloud community appliance, connects to relay servers in the cloud, and provides anytime, anywhere access to your files, on your PC running in your home network, quickly and easily. And, of course, you can grab it from the ownCloud app store and add it to an existing ownCloud server if you already have one running."|
|ownCloud Contributor Conference Announcements|
|Debianhas updated drupal7(multiple vulnerabilities) and iceweasel(multiple vulnerabilities).
Mageiahas updated audit(MG4,5:
unsafe escape-sequence handling), firefox(MG4,5: multiple vulnerabilities), and glusterfs(MG5; MG4: two vulnerabilities).
openSUSEhas updated ansible(13.2: regression in previous update) and thunderbird(13.2; 13.1: multiple vulnerabilities).
Red Hathas updated gdk-pixbuf2(RHEL6,7: code execution) and jakarta-taglibs-standard(RHEL6,7: code execution).
Scientific Linuxhas updated firefox(SL5,6,7: two vulnerabilities), gdk-pixbuf2(SL6,7: code execution), and jakarta-taglibs-standard(SL6,7: code execution).
Slackwarehas updated firefox(multiple vulnerabilities).
SUSEhas updated kvm(SLE11SP4:
|Security updates for Monday|
|Linus has announcedthe final release of the 4.2 kernel.
"So judging by how little happened this week, it wouldn't have been a
mistake to release 4.2 last week after all, but hey, there's certainly
a few fixes here, and it's not like delaying 4.2 for a week should
have caused any problems either."Headline features in this release include the
security module stacking patches,
the delay-gradient congestion-control
improvements to writeback management in control groups,
a lot of important persistent-memory infrastructure, and more.
|The 4.2 kernel has been released|
|Version 7.10 of the GDB debugger is out. Improvements this time around
include better support for access to shared libraries on remote targets,
reverse debugging on ARM64 systems, support for DTrace static probes, and
|GDB 7.10 released|
|Google has announcedthat, beginning September 1, Chrome will no longer auto-play
Flash-based ads in the company's popular AdWords program. The post
frames this as a move to improve browsing performance for users, and
notes that most Flash ads are automatically converted to HTML5
already. Commenting on the news, The Registernotesthat the change should also offer some additional protection against
malware delivered via Flash. Chrome will continue to auto-play Flash
content in the main body of pages, however. The Register's story says
the change is, in fact, just a modification of the default setting for
plugin behavior, which already supportsan option to disable plugin content not deemed "important."Mozilla,
of course, blacklistedthe Flash
plugin in July, although that action only disabled the then-current,
vulnerable release—which was subsequently updated.
|Starting in September, Chrome will stop auto-playing Flash ads|
|Arch Linuxhas updated firefox(multiple vulnerabilities).
CentOShas updated firefox(C5; C6; C7: multiple vulnerabilities) and thunderbird(C5; C6; C7: multiple vulnerabilities).
Debian-LTShas updated openjdk-6(multiple vulnerabilities) and zendframework(XML external entity attack).
Fedorahas updated maradns(F21; F22:
denial of service),
openssh(F21: multiple vulnerabilities), php-guzzle-Guzzle(F21; F22: XML external entity attack), php-twig(F22: code execution),
php-ZendFramework2(F21; F22: XML external entity attack), rt(F21; F22:
and rubygem-rack(F21: denial of service).
Mageiahas updated drupal(M4,5: multiple vulnerabilities), python-django, python-django14(M4,5: multiple vulnerabilities), subversion(M4,5: multiple vulnerabilities), thunderbird(M4,5: multiple vulnerabilities), and vlc(M4,5: code execution).
Oraclehas updated firefox(O5; O6; O7: multiple vulnerabilities).
Red Hathas updated firefox(RHEL5,6,7: multiple vulnerabilities).
SUSEhas updated MozillaFirefox,
mozilla-nss(SLE11: multiple vulnerabilities).
Ubuntuhas updated cups-filters(15.04: unintended printer access) and firefox(12.04, 14.04, 15.04: multiple vulnerabilities).
|Friday's security updates|
|The Electronic Frontier Foundation has announcedthe recipients of its Pioneer Awards for 2015: Caspar Bowden, The Citizen
Lab, Annriette Esterhuysen and the Association for Progressive
Communications, and Kathy Sierra. "This extraordinary group of
winners have all focused on the users, striving to give everyone the
access, power, community, and protection they need in order to create and
participate in our digital world."|
|The 2015 EFF Pioneer Awards|
|KDE.News looks at KDE sprintsand their benefits. The organization is doing some fundraisingto help support its sprints, so it is trying get the word out about these code-focused events: "To start with, KDE sprints are intensive sessions centered around coding. They take place in person over several days, during which time skillful developers eat, drink and sleep code. There are breaks to refresh and gain perspective, but mostly sprints involve hard, focused work. All of this developer time and effort is unpaid. However travel expenses for some developers are covered by KDE. KDE is a frugal organization with comparatively low administrative costs, and only one paid person who works part time. So the money donated for sprints goes to cover actual expenses. Who gets the money? Almost all of it goes to transportation companies."|
|KDE Sprints - who wins? (KDE.News)|
|Debianhas updated php5(multiple vulnerabilities).
Debian-LTShas updated pykerberos(authentication botch) and python-django(two vulnerabilities).
Fedorahas updated mariadb(F21: unspecified).
Mageiahas updated cgit(code
execution from 2014).
Ubuntuhas updated qemu, qemu-kvm(multiple vulnerabilities, including one from 2014).
|Security updates for Thursday|
|The developers of the Grsecurity kernel-hardening patch set have announcedthat, due to
claimed ongoing GPL and trademark violations, the public distribution of the
"stable"series of patches will stop. "We decided that it is unfair
to our sponsors that the above mentioned unlawful players can get away with
their activity. Therefore, two weeks from now, we will cease the public
dissemination of the stable series and will make it available to sponsors
only. The test series, unfit in our view for production use, will however
continue to be available to the public to avoid impact to the Gentoo
Hardened and Arch Linux communities."|
|Grsecurity stable patches to be limited to sponsors|
|The LWN.net Weekly Edition for August 27, 2015 is available.
|[$] LWN.net Weekly Edition for August 27, 2015|
|Arch Linuxhas updated gnutls(denial of service), jasper(denial of service), pcre(code execution), and python-django(denial of service).
CentOShas updated httpd(C7: two
vulnerabilities) and mariadb(C7: multiple vulnerabilities).
Debianhas updated twig(code execution).
Debian-LTShas updated ruby1.8(information disclosure) and ruby1.9.1(information disclosure).
Mageiahas updated gnutls(MG4,5:
two vulnerabilities), vlc(MG5: code
execution), and wireshark(MG4,5: multiple vulnerabilities).
Oraclehas updated thunderbird(OL7; OL6: multiple vulnerabilities).
Ubuntuhas updated gdk-pixbuf(15.04, 14.04, 12.04: code execution).
|Security updates for Wednesday|
|At the 2015 edition of TypeConin Denver, Adobe's Frank Grie▀hammer presented his
work reviving the famous Hershey fontsfrom the Mid-Century era of computing. The original fonts were
tailor-made for early vector-based output devices but, although they
have retained a loyal following (often as a historical curiosity), they have never
produced as an installable digital font.
|[$] Reviving the Hershey fonts|
|Version 1.5 of the Go languagehas been released.
"This release includes significant changes to the implementation. The compiler tool chain was translated from C to Go, removing the last vestiges of C code from the Go code base. The garbage collector was completely redesigned, yielding a dramatic reduction [PDF]in garbage collection pause times. Related improvements to the scheduler allowed us to change the default GOMAXPROCSvalue (the number of concurrently executing goroutines) from 1 to the number of available CPUs. Changes to the linker enable distributing Go packages as shared libraries to link into Go programs, and building Go packages into archives or shared libraries that may be linked into or loaded by C programs (design doc)."|
|Go 1.5 released|