mp3 tag/rename based on creation (last modified date)


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting mp3 tag/rename based on creation (last modified date)
# 1  
Old 11-23-2009
mp3 tag/rename based on creation (last modified date)

Arg, I'm trying to figure out how to create a album tag based on the last modified date stamp for files which don't have a corresponding .talk file.
IE. 2009 12 10 - Talk Radio.mp3 is how I want them structured, they should all have a corresponding .talk file so my mp3 player can speak the name ie 2009 12 10 - Talk Radio.mp3.talk.
Any file with a .talk file should be skipped because its already been processed manually by me. Here is what I've got in my script so far...

Code:
#!/bin/bash
for f in *.mp3
do
        # if .talk backup file exists, read next file
        if [ -f ${f}.talk ]
        then
                echo "Skiping $f file..."
                continue  # read next file
        fi
        # no talk file exists
        DATE=`stat -c "%y" $f | awk '{print $1}' | sed 's/-/ /g'`
        id3v2 -A "$DATE" "$f"
        mp3rename $f
done

for f in *.mp3
do
        # if .talk backup file exists, read next file
        if [ -f ${f}.talk ]
        then
                echo "Skiping $f file..."
                continue  # read next file
        fi
        # no talk file exists
        echo $f > temp.tmp
        text2wav temp.tmp -o temp.wav
        rbspeexenc temp.wav $f.talk
done

Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Bourne returning files based on creation date

I'm wanting to write a bourne shell script that takes in two command line arguments - a directory and a file. With this I want to return a list of files within the directory that are older (based on creation date) than the given file, and print the number of files that have not been listed (they... (4 Replies)
Discussion started by: britty4
4 Replies

2. Shell Programming and Scripting

Script to copy creation date over top of modified date?

Can someone draw up a script that for every file, folder and subfolder and files that will copy the creation date over top of the modified date?? I know how to touch every file recursively, but no idea how to read a files creation date then use that to touch the modification date of that file,... (3 Replies)
Discussion started by: toysareforboys
3 Replies

3. UNIX for Dummies Questions & Answers

Unable to find files, those can be present anywhere in the directory tree,based on its creation date

Hi I am unable to find files, those are present anywhere in the same directory tree, based on the creation date. I need to find the files with their path, as I need to create them in another location and move them. I need some help with a script that may do the job. Please help (2 Replies)
Discussion started by: sam192837465
2 Replies

4. UNIX for Dummies Questions & Answers

Select all files in a folder based on creation date (ls command)

Hi All, <Re-posting in Correct group> I'm trying to select all the files in a folder that starts with a particular name format and are created in a gven date range using 'ls' command...but i'm not successful.... Example : I'm trying to see all the text files in a folder who names start... (6 Replies)
Discussion started by: Satya C1
6 Replies

5. Shell Programming and Scripting

Move files from one directory to another based on creation/modification date

Hi All, Really stuck up with a requirement where I need to move a file (Lets say date_Employee.txt--the date will have different date values like 20120612/20120613 etc) from one directory to another based on creation/modification dates. While visiting couple of posts, i could see we can... (3 Replies)
Discussion started by: dsfreddie
3 Replies

6. Programming

how to add user defined tag in a mp3 file?

Hai all, Can anyone explain me about how to add an user defined tag in an mp3 file using MP3::Tag module in perl? (0 Replies)
Discussion started by: thillai_selvan
0 Replies

7. UNIX for Dummies Questions & Answers

Moving Directories Based on Modified date

Hi, How can I move directories (and all sub directories/files) from one directory to another based on the modified date of the directory? Currently the existing structure looks like this: /public_html/media/videos/tmb/34947/image1.jpg /public_html/media/videos/tmb/34947/image2.jpg ... (0 Replies)
Discussion started by: lbargers
0 Replies

8. Shell Programming and Scripting

Rename File Based on Created Date

I am trying to rename files based on the created/born date of the file. I Have a total of 4000 files that i am trying to do this with and would like it to be log_yyyymmddhh.gz right now the files are maillog.???.gz. Can anyone point me in the right direction of how to get this done via scipt? ... (4 Replies)
Discussion started by: Paulb
4 Replies

9. UNIX for Dummies Questions & Answers

Moving files based on creation date

Howdy, I'm trying to figure out how to move multiple files based on their creation date. If anyone can enlighten me it would be most appreciated!! Thanks! :D (1 Reply)
Discussion started by: dgoyea
1 Replies
Login or Register to Ask a Question
MP3::Tag::ID3v1(3pm)					User Contributed Perl Documentation				      MP3::Tag::ID3v1(3pm)

NAME
MP3::Tag::ID3v1 - Module for reading / writing ID3v1 tags of MP3 audio files SYNOPSIS
MP3::Tag::ID3v1 is designed to be called from the MP3::Tag module. use MP3::Tag; $mp3 = MP3::Tag->new($filename); # read an existing tag $mp3->get_tags(); $id3v1 = $mp3->{ID3v1} if exists $mp3->{ID3v1}; # or create a new tag $id3v1 = $mp3->new_tag("ID3v1"); See MP3::Tag for information on the above used functions. * Reading the tag print " Title: " .$id3v1->title . " "; print " Artist: " .$id3v1->artist . " "; print " Album: " .$id3v1->album . " "; print "Comment: " .$id3v1->comment . " "; print " Year: " .$id3v1->year . " "; print " Genre: " .$id3v1->genre . " "; print " Track: " .$id3v1->track . " "; # or at once @tagdata = $mp3->all(); foreach $tag (@tagdata) { print $tag; } * Changing / Writing the tag $id3v1->comment("This is only a Test Tag"); $id3v1->title("testing"); $id3v1->artist("Artest"); $id3v1->album("Test it"); $id3v1->year("1965"); $id3v1->track("5"); $id3v1->genre("Blues"); # or at once $id3v1->all("song title","artist","album","1900","comment",10,"Ska"); $id3v1->write_tag(); * Removing the tag from the file $id3v1->remove_tag(); AUTHOR
Thomas Geffert, thg@users.sourceforge.net DESCRIPTION
title(), artist(), album(), year(), comment(), track(), genre() $artist = $id3v1->artist; $artist = $id3v1->artist($artist); $album = $id3v1->album; $album = $id3v1->album($album); $year = $id3v1->year; $year = $id3v1->year($year); $comment = $id3v1->comment; $comment = $id3v1->comment($comment); $track = $id3v1->track; $track = $id3v1->track($track); $genre = $id3v1->genre; $genre = $id3v1->genre($genre); Use these functions to retrieve the date of these fields, or to set the data. $genre can be a string with the name of the genre, or a number describing the genre. all() @tagdata = $id3v1->all; @tagdata = $id3v1->all($title, $artist, $album, $year, $comment, $track, $genre); Returns all information of the tag in a list. You can use this sub also to set the data of the complete tag. The order of the data is always title, artist, album, year, comment, track, and genre. genre has to be a string with the name of the genre, or a number identifying the genre. fits_tag() warn "data truncated" unless $id3v1->fits_tag($hash); Check whether the info in ID3v1 tag fits into the format of the file. as_bin() $str = $id3v1->as_bin(); Returns the ID3v1 tag as a string. write_tag() $id3v1->write_tag(); [old name: writeTag() . The old name is still available, but you should use the new name] Writes the ID3v1 tag to the file. remove_tag() $id3v1->remove_tag(); Removes the ID3v1 tag from the file. Returns negative on failure, FALSE if no tag was found. (Caveat: only one tag is removed; some - broken - files may have many chain-loaded one after another; you may need to call remove_tag() in a loop to handle such beasts.) [old name: removeTag() . The old name is still available, but you should use the new name] genres() @allgenres = $id3v1->genres; $genreName = $id3v1->genres($genreID); $genreID = $id3v1->genres($genreName); Returns a list of all genres, or the according name or id to a given id or name. new() $id3v1 = MP3::Tag::ID3v1->new($mp3fileobj[, $create]); Generally called from MP3::Tag, because a $mp3fileobj is needed. If $create is true, a new tag is created. Otherwise undef is returned, if now ID3v1 tag is found in the $mp3obj. Please use $mp3 = MP3::Tag->new($filename); $id3v1 = $mp3->new_tag("ID3v1"); # Empty new tag or $mp3 = MP3::Tag->new($filename); $mp3->get_tags(); $id3v1 = $mp3->{ID3v1}; # Existing tag (if present) instead of using this function directly SEE ALSO
MP3::Tag, MP3::Tag::ID3v2 ID3v1 standard - http://www.id3.org COPYRIGHT
Copyright (c) 2000-2004 Thomas Geffert. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the Artistic License, distributed with Perl. perl v5.14.2 2009-11-28 MP3::Tag::ID3v1(3pm)