grasshopper3 Posted October 28, 2010 Share Posted October 28, 2010 I am trying to create a script that auto moves an album based on the ID3 Tags. I tried using the ID3 UDF but it inconsistent. What is the best Tagging program that can be automated in the background. I like command line the best. So one has to have done this. Please help. Thanks. Link to comment Share on other sites More sharing options...
AlmarM Posted October 28, 2010 Share Posted October 28, 2010 Try this: http://www.autoitscript.com/forum/index.php?showtopic=25859 Minesweeper A minesweeper game created in autoit, source available. _Mouse_UDF An UDF for registering functions to mouse events, made in pure autoit. 2D Hitbox Editor A 2D hitbox editor for quick creation of 2D sphere and rectangle hitboxes. Link to comment Share on other sites More sharing options...
grasshopper3 Posted October 30, 2010 Author Share Posted October 30, 2010 This worked great for reading the tag information, but I want to be able to edit the ID3 tags. I tried using the ID3.au3 but I couldn't get it to write the ID3 tags. I even copied some code out of the ID3_Example_GUI.au3 that I found in the forums. Can someone please tell me how they have successfully been able to read and write ID3 tags. Someone has to have been able to successfully and reliably read and write ID3 tags. Here is what I have tried, but doesn't seem to work... expandcollapse popup;MP3 Tagging #include "ID3.au3" #include "ExtProp.au3" Local $Source = @ScriptDir & '\Test_Files' Local $BaseMusicArr[1][2], $BaseArrSize=0 Local $MusicInfoArr[1][8] Local $TagMod=False __FolderScan_Mp3($Source,$BaseMusicArr,$BaseArrSize) _ArrayDisplay($BaseMusicArr) ;Retrieve TAG Information From MP3 Files For $iCount=0 to UBound($BaseMusicArr)-1 ;~ _ArrayDisplay(_GetExtProperty($BaseMusicArr[$iCount][1],-1),'extended properties') $ExtPropArr = _GetExtProperty($BaseMusicArr[$iCount][1],-1) $MP3Tags = _ID3ReadTag($BaseMusicArr[$iCount][1]) ;Resize and Populate Music Track Information Array ReDim $MusicInfoArr[$iCount+1][8] $MusicInfoArr[$iCount][0] = _ID3GetTagField("TPE1") ;Artist $MusicInfoArr[$iCount][1] = _ID3GetTagField("TALB") ;Album $MusicInfoArr[$iCount][2] = _ID3GetTagField("TYER") ;Year $MusicInfoArr[$iCount][3] = _ID3GetTagField("COMM") ;Comment $MusicInfoArr[$iCount][4] = _ID3GetTagField("TIT2") ;Track Title $MusicInfoArr[$iCount][5] = _ID3GetTagField("TCON") ;Genre $MusicInfoArr[$iCount][6] = $BaseMusicArr[$iCount][1] ;Full File Path ;Artist If $MusicInfoArr[$iCount][0]<>'' And $MusicInfoArr[$iCount][0]<>$ExtPropArr[16] Then _ID3SetTagField("TPE1",$MusicInfoArr[$iCount][0]) _ID3SetTagField("Artist",$MusicInfoArr[$iCount][0]) $TagMod=True EndIf ;Album If $MusicInfoArr[$iCount][1]<>'' And $MusicInfoArr[$iCount][1]<>$ExtPropArr[17] Then _ID3SetTagField("TALB",$MusicInfoArr[$iCount][1]) _ID3SetTagField("Album",$MusicInfoArr[$iCount][1]) $TagMod=True EndIf ;Track Title If $MusicInfoArr[$iCount][4]<>'' And $MusicInfoArr[$iCount][4]<>$ExtPropArr[10] Then _ID3SetTagField("TIT2",$MusicInfoArr[$iCount][4]) _ID3SetTagField("Track",$MusicInfoArr[$iCount][4]) $TagMod=True EndIf If $TagMod=True Then _ID3WriteTag($MusicInfoArr[$iCount][6]) $TagMod=False EndIf Next _ArrayDisplay($MusicInfoArr) Func __FolderScan_Mp3($SourceDir,ByRef $BaseMusicArr, ByRef $BaseArrSize) Local $Search,$File,$FileAttributes,$SourceFolder,$FullFilePath $SourceFolder = $SourceDir ;********************************************************* Search Folder $Search = FileFindFirstFile($SourceFolder & "\*.*") ; ***************** Search Filter $FullFilePath = $SourceFolder & "\" & $File While 1 If $Search = -1 Then ExitLoop EndIf $File = FileFindNextFile($Search) If @error Then ExitLoop $FullFilePath = $SourceFolder & "\" & $File $FileAttributes = FileGetAttrib($FullFilePath) If StringInStr($FileAttributes,"D") Then __FolderScan_Mp3($FullFilePath,$BaseMusicArr,$BaseArrSize) Else If StringRight($File,4)=".mp3" Then ;Set Time Stamp To Current Time FileSetTime($FullFilePath,'') ;Resize and Add File to Array ReDim $BaseMusicArr[$BaseArrSize+1][2] $BaseMusicArr[$BaseArrSize][0] = $File $BaseMusicArr[$BaseArrSize][1] = $FullFilePath $BaseArrSize+=1 EndIf EndIf WEnd FileClose($Search) Return EndFunc Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now