git-annex has metadata driven views[0], which might be what you're looking for. When you're looking at a view, copying or moving a file to a folder "tagname", adds the tag "tagname" to that file. That seems easily scriptable to tag by media type/extension...