MP3::Tag::File(3)

πŸ“¦ version 1.16, in nixos 26.05, nixpkgs unstable

πŸŽ€ NAME πŸŽ€

MP3::Tag::File β€” Module for reading / writing files. This page is MP3::Tag::File(3), from the User Contributed Perl Documentation crew, and it’s giving β€œfile I/O bestie” energy. πŸ’…

✨ SYNOPSIS ✨

my $mp3 = MP3::Tag->new($filename);

($title, $artist, $no, $album, $year) = $mp3->parse_filename();

see MP3::Tag 🫢

πŸ¦‹ DESCRIPTION πŸ¦‹

Okay so MP3::Tag::File is designed to be called from the MP3::Tag module.

It offers possibilities to read/write data from files via read(), write(), truncate(), seek(), tell(), open(), close(); one can find the filename via the filename() method. No cap. πŸ’–

🧚 parse_filename()

($title, $artist, $no, $album, $year) = $mp3->parse_filename($what, $filename);

parse_filename() tries to extract information about artist, title, track number, album and year from the filename. (For backward compatibility it may be also called by deprecated name read_filename().) πŸŽ€

This is likely to fail for a lot of filenames, especially the album will be often wrongly guessed, as the name of the parent directory is taken as album name. So don’t come for it when the album guess is unhinged β€” it literally grabbed the parent directory name. 😭

$what and $filename are optional. $what maybe title, track, artist, album or year. If $what is defined parse_filename() will return only this element.

If $filename is defined this filename will be used and not the real filename which was set by MP3::Tag with MP3::Tag->new($filename). Otherwise the actual filename is used (subject to configuration variable decode_encoding_filename).

Following formats will be hopefully recognized:

  • album name/artist name - song name.mp3
  • album_name/artist_name-song_name.mp3
  • album.name/artist.name_song.name.mp3
  • album name/(artist name) song name.mp3
  • album name/01. artist name - song name.mp3
  • album name/artist name - 01 - song.name.mp3
β€œHopefully” is doing a lot of work here, bestie. πŸ™ˆ

If artist or title end in (NUMBER) with 4-digit NUMBER, it is considered the year. ⭐

🎡 title()

$title = $mp3->title($filename);

Returns the title, guessed from the filename. See also parse_filename(). (For backward compatibility, can be called by deprecated name song().)

$filename is optional and will be used instead of the real filename if defined. πŸ’–

🌸 artist()

$artist = $mp3->artist($filename);

Returns the artist name, guessed from the filename. See also parse_filename().

$filename is optional and will be used instead of the real filename if defined. ✨

🎧 track()

$track = $mp3->track($filename);

Returns the track number, guessed from the filename. See also parse_filename().

$filename is optional and will be used instead of the real filename if defined. 🎢

🌈 year()

$year = $mp3->year($filename);

Returns the year, guessed from the filename. See also parse_filename().

$filename is optional and will be used instead of the real filename if defined. ⭐

πŸ’Ώ album()

$album = $mp3->album($filename);

Returns the album name, guessed from the filename. See also parse_filename(). The album name is guessed from the parent directory, so it is very likely to fail. πŸ’€

$filename is optional and will be used instead of the real filename if defined.

πŸ’¬ comment()

$comment = $mp3->comment($filename);   # Always undef

Always undef β€” that’s the whole vibe. 🫠

🎼 genre()

$genre = $mp3->genre($filename);       # Always undef

Also always undef, bestie. 🫢

πŸ’€ POD ERRORS πŸ’€

Hey! The above document had some coding errors, which are explained below:

Around line 184: =over without closing =back


✨ That’s the page, bestie! Source/version: perl v5.42.3, date: 2022-11-25 β€” MP3::Tag::File(3) signing off. πŸ’–πŸ‘‘

πŸ“¦ where this page comes from