Coolthing Of Theday

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg

Tuesday, 10 September 2013

Just a few shell games... shellproperty.exe and Raymond's Audio file metadata setter

Posted on 17:08 by Unknown

Matthew van Eerde's web log - shellproperty.exe - set/read string properties on a file from the command line

Yesterday Raymond Chen blogged a "Little Program" which could edit audio metadata. As it happens, I have a similar tool I threw together which accepts a property key and a string property value to update a property, or can read a string or string-vector property.

Usage:

>shellproperty
shellproperty read <key> from <filename>
shellproperty set <key> to <string> on <filename>

Here's an example _fixup.bat script I use to set audio metadata on my copy of Giuseppe Sinopoli's recording of Madama Butterfly, to help distinguish it from other recordings of the same opera that I have.

@echo off
dir /s /b "I *.mp3" | xargs /addquotes shellproperty set PKEY_Music_AlbumTitle to "Madama Butterfly - Sinopoli / Freni: 1 of 3" on
dir /s /b "II *.mp3" | xargs /addquotes shellproperty set PKEY_Music_AlbumTitle to "Madama Butterfly - Sinopoli / Freni: 2 of 3" on
dir /s /b "III *.mp3" | xargs /addquotes shellproperty set PKEY_Music_AlbumTitle to "Madama Butterfly - Sinopoli / Freni: 3 of 3" on

Source and amd64/x86 binaries attached, but in substance it's very similar to Raymond's "Little Program".

..." [GD: Click through for the source ;]

The Old New Thing - Programmatically editing the metadata of an audio file

Today's Little Program edits the metadata of an audio file, ostensibly to correct a spelling error, but really just to show how it's done.

Today's smart pointer class library is... (rolls dice)... CComPtr!

We open with two helper functions which encapsulate the patterns

  • Get property from property store
    1. Call IProperty­Store::Get­Value
    2. Convert PROPVARIANT into desired final type
    3. Destroy the PROPVARIANT
  • Set property in property store
    1. Create a PROPVARIANT
    2. Call IProperty­Store::Set­Value
    3. Destroy the PROPVARIANT

... [GD: Again, click through for the source]

Two little command line app's that not only teach, but look useful in their own rights. And who doesn't like hacking document metadata properties? :P

Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
Posted in C++, Development, Windows | No comments
Newer Post Older Post Home

0 comments:

Post a Comment

Subscribe to: Post Comments (Atom)

Popular Posts

  • Mr. 7,000! This is my 7,000th post...
    Before this post; After; 20 visits between taking these snaps? Oh wait, that's probably me searching for past related posts....
  • Rad Gate Post... Get your Red Gate Post here...
    simple talk - Melanie Townsend - Get a copy of the Red Gate Post We recently put together a newspaper of some of the best articles fr...
  • "Windows Server Essentials Media Pack" (DNLA Stream, HTML5 and Dashboard Media stuff)
    Microsoft Downloads - Windows Server Essentials Media Pack This pack enables the media streaming functionality for Windows Server 2012...
  • Windows Management Framework 4.0 (PowerShell 4, PowerShell ISE, Management OData, WMI, etc.) now available
    Keith Hill's Blog - PowerShell 4.0 Now Available You can get PowerShell 4.0 for down level operating systems now via the WMF 4.0 d...
  • Gestalt your way to better data visualization by following the Gestalt Laws
    Six Revisions - How to Make Data Visualization Better with Gestalt Laws People love order. We love to make sense of the world around u...
  • Viasfora - Your new favorite Visual Studio Text/*ML Editing Extension?
    Winterdom - Introducing Viasfora A couple of days ago, I unveiled Viasfora , my latest attempt at building a decently packaged extensi...
  • "Windows Server [2012 R2]: The Best Infrastructure to Run Linux Workloads"
    In the Cloud - What’s New in 2012 R2: Enabling Open Source Software Part 4 of a 9-part series . ... There are a lot of great s...
  • [Hardware Review] Life with Haswell... Haswell/Harris Beach Intel SDS Ultrabook Review - Part 2
    "So Greg, how's life with Haswell been?" "Pretty Sweet! (Mostly)" I've been given an opportunity to review t...
  • Fuzzy Lookup Add-In for Excel (Insert lame "Fuzzy, wuzzy was an Excel..." snip here)
    Microsoft Downloads - Fuzzy Lookup Add-In for Excel The Fuzzy Lookup Add-In for Excel performs fuzzy matching of textual data in Exce...
  • Caliburn.Micro v1.5.0 released (CM gets Tasks, Async/Await and Share/Setting for RT... and bug fixes of course)
    Caliburn.Micro - Caliburn.Micro v1.5.0 "Release Notes This release fixes many bugs. It also adds support for Task and async/a...

Categories

  • .Net
  • 3DPrinting
  • AFeedYouShouldRead
  • Agile
  • ALM
  • Amazon
  • Amiga
  • Analytics
  • Android
  • ASP.NET
  • Azure
  • BigData
  • bing
  • Blogging
  • Book
  • BookReview
  • BUILD
  • C
  • C#
  • C++
  • Career
  • Cat
  • cheatsheet
  • ClickOnce
  • Cloud
  • ComputerHardware
  • css
  • Data
  • DBA
  • DependencyInjection
  • Deployment
  • Design
  • Development
  • devops
  • DVCS
  • ebook
  • EDD
  • Education
  • EnterpriseLibrary
  • EntityFramework
  • Exchange
  • Expression
  • gadget
  • Game
  • GIT
  • Google
  • Government
  • Hadoop
  • hardware
  • HardwareReview
  • HaswellReview
  • HTML5
  • Humor
  • IE
  • IEExtension
  • IfAllElseFails
  • IIS
  • ILMerge
  • Image
  • Infographic
  • interview
  • InversionOfControl
  • Java
  • Javascript
  • Kinect
  • LightSwitch
  • LINQ
  • Linux
  • LosAngeles
  • Lucene
  • Lync
  • MEF
  • Metro
  • MicrosoftOffice
  • MicrosoftOutlook
  • Mono
  • MVC
  • MVVM
  • NetMon
  • NLP
  • NoSQL
  • NuGet
  • OData
  • OneNote
  • OpenXML
  • Paint.Net
  • Personal
  • Photosynth
  • Physics
  • portable
  • Poster
  • PowerShell
  • Preparedness
  • Presentation
  • Prism
  • PrivateCloud
  • RegEx
  • RemoteDesktop
  • Reporting
  • RIAServices
  • Science
  • ScienceFiction
  • Scratch
  • Scrum
  • ServiceBus
  • SharePoint
  • Silverlight
  • SimiValley
  • SPA
  • Space
  • SQLServer
  • Storyboard
  • Surface
  • SVG
  • SystemAdministration
  • T4
  • TeamBuild
  • TeamFoundationServer
  • TechEd
  • Training
  • TypeScript
  • UnitTesting
  • UnityApplicationBlock
  • Utility
  • Veteran
  • VirtualMachine
  • Visio
  • VisualBasic
  • VisualStudio
  • WCF
  • Web X.X
  • Webcast
  • WebFeed
  • WebMatrix
  • Windows
  • Windows7
  • Windows8
  • Windows8.1
  • WindowsHomeServer
  • WindowsLiveWriter
  • WindowsPhone
  • WindowsServer
  • WinRT
  • WiX
  • WMI
  • WOPI
  • WPF
  • XAML
  • XBox360
  • XboxOne
  • zombie

Blog Archive

  • ▼  2013 (500)
    • ►  December (12)
    • ►  November (61)
    • ►  October (65)
    • ▼  September (38)
      • Oh Behave... Behaviors SDK and the new BlendBehav...
      • High Level View of the Difference Between Office 2...
      • Speckie (THE IE Spell Checker Extension) v6 Releas...
      • Cool JavaScript of the Day - The World in 1k
      • Did you get the message? Message Analyzer v1.0 has...
      • [Geek Humor] If Windows 8 came on Floppies...
      • Get a big jump into Big Data with the "Getting Sta...
      • "The Ultimate Agile Planning Handbook" Free [email...
      • WakaWaka wild holiday solar special... Power a com...
      • Space Mining - Science Fiction or just Science? (N...
      • Red Gate goes SQL Loco for OSS Projects...
      • It's [going to be] a girl!
      • "The 7 Irrefutable Rules of Bacon"
      • OSS that a sysadmin can love... InfoWorld's 12 Sys...
      • The HOL "Building a Release Pipeline with Team Fou...
      • [Hardware Review] Life with Haswell... Haswell/Har...
      • New from NirSoft, SoundVolumeView (think "Uber vol...
      • No need to fake it 'till you make it when you have...
      • [I Miss My Amiga - Way Back Post] AmigaHASP
      • Remember...
      • "Winging It" is a pretty rough Preparedness Plan (...
      • Also out yesterday, 2012.4rc3 - TFS 2012 and Visua...
      • Just a few shell games... shellproperty.exe and Ra...
      • Remember 9-11, Los Angeles Events
      • I miss you, MSICUU2 - "What happened to the Window...
      • Get Blue! (No, not that Blue...) Get the free Offi...
      • Silicon Beach gets a new Microsoft [Technology Cen...
      • What's the new in Windows Server 2012 R2?
      • UC Irvine, Canvas and AMC - "Society, Science, Sur...
      • I2BLE (Intro to Bluetooth Low Energy)
      • "Introducing Windows Server 2012 R2" [Preview eBoo...
      • The Old with the New - How to [unofficially] upgra...
      • Setting your Kindle on fire with Kindle MatchBook
      • CodePlex has a new face (well actually, he's kind ...
      • [Not Humor] Windows To Go Fact Sheet from the NSA
      • Lighting the way into the future (of LightSwitch) ...
      • "Windows Store Apps Succinctly" 185 page ebook fro...
      • 28 in 2... 28 tips in two months from Daily .NET Tips
    • ►  August (47)
    • ►  July (75)
    • ►  June (39)
    • ►  May (40)
    • ►  April (42)
    • ►  March (39)
    • ►  February (42)
Powered by Blogger.

About Me

Unknown
View my complete profile