Get MP3 Tag with PowerShell
Well, it’s Saturday night and I was watching some of the old Powershell tutorials, which I had downloaded from Microsoft Virtual Academy.
THE PROBLEM :
But problem with these downloaded tutorials is that – They have a Default download name, and one can barely understand the Content inside each vedio. see in the below picture.
SOLUTION :
Media players like, iTunes and Windows Media Player displays detailed information for all the media files, but where do they get this information from?
Answer to this is METADATA of that file .
So why not dig this Metadata to get more information about the files and see if we can get something useful, hence the following script.
SCRIPT :
HOW IT WORKS :
Just feed the function with the directory path, where all your .MP3 or .MP4 files are located and you’ll get the MetaData associated with each file, like in the below picture.
You can use this MetaData in many different ways, like I used it to Rename the downloaded files to solve my problem in the following animation.
Or, you can move all the songs which you’ve downloaded to a folder Categorized by their respective Album name, this is pretty handy too 😉 using the following script.
and you’ll end up with folder structures with the Album name’s from the MetaData that has all your songs categorized properly within these folders.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ForEach($item in ("C:\Users\Prateek\Downloads\music" |Get-MP3MetaData)){ | |
$Source = $item.Fullname | |
$Album = $item.Album | |
Set-Location C:\Music | |
If(-not (gci | ?{$_.name -eq "$Album" -and $_.PSisContainer})) | |
{ | |
New-Item -Name $Album -ItemType Directory -Force |Out-Null | |
} | |
$destination = "C:\Music\$album" | |
Move-Item -Path $Source -Destination $destination -Force -Verbose | |
} |
Hoping you’ll find it fun!! 🙂 Happy weekends!
My new book : PowerShell Scripting Guide to Python
This PowerShell Scripting guide to Python is designed to make readers familiar with syntax, semantics and core concepts of Python language, in an approach that readers can totally relate with the concepts of PowerShell already in their arsenal, to learn Python fast and effectively, such that it sticks with readers for longer time.
“Use what you know to learn what you don’t. ” also known as Associative learning.
Book follows a comparative method to jump start readers journey in Python, but who is the target audience? and who should read this book –
- Any System Administrator who want to step into Development or Programming roles, and even if you don’t want to be a developer, knowledge of another scripting language will make your skill set more robust.
- Python Developers who want to learn PowerShell scripting and understand its ease of user and importance to manage any platform.
Python is one of the top programming languages and in fast changing IT scenarios to DevOps and Cloud to the future – Data Science, Artificial Intelligence (AI) and Machine Learning Python is a must know.
But this PowerShell Scripting guide to Python would be very helpful for you if you already have some knowledge of PowerShell
NOTE! This is a Leanpub “Agile-published” book. That means the book is currently unfinished and in-progress. As I continue to complete the chapters, we will re-publish the book with the new and updated content. Readers will receive an email once a new version is published!
While the book is in progress, please review it and send any feedback or error corrections at prateek@ridicurious.com
Prateek Singh
Related posts
9 Comments
Leave a ReplyCancel reply
Categories
Author of Books
Awards
Open Sourced Projects
Author at
Blog Roll
Mike F RobbinsDamien Van Robaeys
Stéphane van Gulick
Kevin Marquette
Adam Bertram
Stephanos Constantinou
Francois-Xavier Cat
Ravikanth Chaganti
Roman Levchenko
Blog Stats
- 1,131,878 People Reached
Shell object is not created
Hi Prasoon, I’ve fixed that. please check now. Thank you.
[…] on October 16, 2016 submitted by /u/Prateeksingh1590 [link] [comments] Leave a […]
Very nice! I’ve written similar scripts in the past for exif data in .jpg files. I would be very grateful if you could abstract SETTING metadata for .mp3 into a function. that’s something I haven’t figured out how to do without using external tools.
Ever considered using taglib-sharp.dll for these tasks?
I’m not really into .COM objects, it’s still a bit too complicated for me, but once I have turned lazy Sunday into PS Sunday with fixing some common errors in my mp3/flac library.
VMware Certified Advanced Professional 6 (Desktop and Mobility Deployment) – The industry-recognized VCAP6-DTM Deploy certification validates that you know how to deploy and optimize VMware Horizon 6 (with View) environments. It demonstrates that you have the understanding and skills vital to leverage best practices to provide a scalable and dependable Business Mobility platform for your organization. Some of the subject areas involve: Configuring and managing Horizon View components, configuring cloud pod archituecture, configuring Group Policy settings related to Horizon View, Configuring and optimizing desktop images for Horizon View & Mirage, Configuring and managing App Volumes AppStacks, Configuring desktop pools, Configuring and deploying ThinApp packaged applications, Configuring VMWare Identity Manager, etc.Szumigalski.com was created by Sebastian to propagate his passion for PowerShell & VMWare. Sebastian is an IT skilled professional employed in Singapore for more than 15 years who’s often searching for innovative technology to sharpen his technical abilities & understanding. Ever since, Sebastian has joined PowerShell User Group & VMWare VMug group, and has also been taking part in all the meetings held in Singapore. This weblog will show you how Sebastian manage to automate his every day undertakings with the help of PowerShell. You can find study courses meant for the VCAP6-DTM exam, which are personally created by Sebastian. Sebastian is licensed with VCAP6-DTM, and is skilled with virtualization & server maintenance from four years experience of automation. The need for VMWare prepared admins and engineers are ever-increasing in today’s tech marketplace. Learn about more about PowerShell & VMWare at Szumigalski.com!
Nice Work! But can you write a function to edit the metadata?
Thanks for this, I was trying to find a Native way to do this that did not require any extra modules. I appreciate you taking the time to share.
i added a simple move routine and fed it 13,000 mp3’s …. it choked.
$targetFolder = “D:\mp3”
ForEach($item in ($targetFolder |Get-MP3MetaData)){
$Source = $item.Fullname
$CArtist = $item.Authors
Set-Location $targetFolder
If(-not (gci | ?{$_.name -eq “$CArtist” -and $_.PSisContainer}))
{
New-Item -Name $CArtist -ItemType Directory -Force |Out-Null
}
$destination = $targetFolder + “\” + $CArtist + “\”
Move-Item -Path $Source -Destination $destination -Force -Verbose
}