Jump to content

getID3Tag and setID3Tag


Xenobiologist
 Share

Recommended Posts

Hi,

filsize must be FileGetSize.

Maybe here something else to have a look at : http://www.autoitscript.com/forum/index.ph...c=95786&hl=

Mega

That's for ID3v2, the script I posted was ID3v1. I haven't finished my library for ID3v2, and it won't be restricted, I plan on opening all options to make it a complete ID3v2 tag editor.

EDIT: Correction, that DLL can do both, but again, you don't need a DLL. My position in this world is, we don't need DLLs for everything because nobody is dedicated enough to do the work in plain scripting to get the job done, that and I like the challenge. I was part of the anti-DLL scripters group for mIRC back in the day, and I wrote a bunch of stuff that didn't require DLLs but was very complicated to execute to say the least. I'm still very much anti-DLL, this can be done without the help of a DLL, and I'm gonna prove it.

WAY LATE EDIT: This has already been done here: http://www.autoitscript.com/forum/index.php?showtopic=43950&st=0

Edited by Cynagen

Blah, blah, blah... lip service... lip service.Working on a number of projects right now, just waiting for my time to post them here on AutoIt forums.

Link to comment
Share on other sites

  • Replies 45
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

  • 2 weeks later...

Hey Xenobiologist,

I've got a problem that after I modify even one tag, say Artist (though it'll happen with any others) that it won't play in Windows Media Player anymore. I get the following error:

Windows Media Player 9 - The input media format is invalid.

Windows Media Player 11 - Windows Media Player encountered a problem while playing the file. For additional assistance... blah blah blah

I opened the original file before modification with the tags and it opened and played fine.

I opened both files within WMP and did a properties on each file. The modified file appears to have dropped it's BIT RATE, where the unmodified file shows 192kbps. I'm wondering if this loss of what the bit rate is is causing the issue. I've tried the modified file in Winamp or a audio editor and it opens and plays fine.

I've modified my original code to make a simplier one to make sure it wasn't my original code, but it still happens with the simple code.

Here's my simple code:

_DLLstartup()

_setID3Tag("E:\Audio\Malloreon Bk 1 - Guardians of the West\A Prologue\test.mp3", 'LeadArtist', "test")

_DLLshutdown()

Func _setID3Tag($h_file, $detail, $value)
    Local $oId3 = ObjCreate("CDDBControl.CddbID3Tag")
    If Not IsObj($oId3) Then
        SetError(1)
        Return 0
    EndIf
   ; False means open for read-write
    $oId3.LoadFromFile ($h_file, False)

    Switch $detail
        Case 'TitleAlbum'
            $oId3.Album = $value
        Case 'LeadArtist'
            $oId3.LeadArtist = $value
        Case 'Title'
            $oId3.Title = $value
        Case 'TrackPosition'
            $oId3.TrackPosition = $value
        Case 'Year'
            $oId3.Year = $value
        Case 'Genre'
            $oId3.Genre = $value
        Case 'Comments'
            $oId3.Comments = $value
        Case 'Label'
            $oId3.Label = $value
        Case 'FileID'
            $oId3.FileId = $value
        Case 'IRSC'
            $oId3.ISRC = $value
        Case 'CopyrightHolder'
            $oId3.CopyrightHolder = $value
        Case 'CopyrightYear'
            $oId3.CopyrightYear = $value
        Case 'PartOfSet'
            $oId3.PartOfSet = $value
        Case 'Movie'
            $oId3.Movie = $value
        Case 'BeatsPerMinute'
            $oId3.BeatsPerMinute = $value
        Case Else
            SetError(2)
            Return 0
    EndSwitch
    $oId3.SaveToFile ($h_file)
    Return 1
EndFunc  ;==>_setID3Tag


Func _DLLstartup($DLLpath = '')
    If $DLLpath = Default Or $DLLpath = '' Then $DLLpath = @ScriptDir & '\cddbcontrol.dll'
    RunWait('regsvr32 /s ' & '"' & $DLLpath & '"')
EndFunc  ;==>_DLLstartup

Func _DLLshutdown($DLLpath = '')
    If $DLLpath = Default Or $DLLpath = '' Then $DLLpath = @ScriptDir & '\cddbcontrol.dll'
    RunWait('regsvr32 /u /s ' & '"' & $DLLpath & '"')
EndFunc  ;==>_DLLshutdown

Thoughts??

Link to comment
Share on other sites

Hi,

maybe this helps you out :M$ Help

which shows :

You are trying to play an MP3 file that contains compressed ID3 headers. The ID3 header is a portion of the file that stores the song's album information (for example, the song name, artist name, album name, and genre). This information is sometimes called a "tag." To fix the problem, make a copy of the file and then use a non-Microsoft ID3 tag editing program to remove or reset the file's ID3 headers. After you remove the ID3 headers, Windows Media Player should be able to play the MP3 file.

Mega

Scripts & functions Organize Includes Let Scite organize the include files

Yahtzee The game "Yahtzee" (Kniffel, DiceLion)

LoginWrapper Secure scripts by adding a query (authentication)

_RunOnlyOnThis UDF Make sure that a script can only be executed on ... (Windows / HD / ...)

Internet-Café Server/Client Application Open CD, Start Browser, Lock remote client, etc.

MultipleFuncsWithOneHotkey Start different funcs by hitting one hotkey different times

Link to comment
Share on other sites

Actually it doesn't. Doesn't it defeat the purpose of having a Autoit script that'll modify tags for them NOT to work in one of the players, like WMP?

I was able to modify the tags using another program I've got but it'll only do one file at a time. I've got some audiobooks that I ripped from CD and wanted to change the tags around using a homemade script so that it was more organized, so the script would be able to handle a lot.

Is it something wrong with the DLL?

Link to comment
Share on other sites

Hi,

sorry I really don't know. I just use the UDF/DLL and I got no problems till now. But, I do not use the WMP at all. :D

Mega

Scripts & functions Organize Includes Let Scite organize the include files

Yahtzee The game "Yahtzee" (Kniffel, DiceLion)

LoginWrapper Secure scripts by adding a query (authentication)

_RunOnlyOnThis UDF Make sure that a script can only be executed on ... (Windows / HD / ...)

Internet-Café Server/Client Application Open CD, Start Browser, Lock remote client, etc.

MultipleFuncsWithOneHotkey Start different funcs by hitting one hotkey different times

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...