Alterar programaticamente o "Valor" de uma "Propriedade" na seção "Detalhes" de um arquivo de mídia no Windows?

Alterar programaticamente o "Valor" de uma "Propriedade" na seção "Detalhes" de um arquivo de mídia no Windows?

No Windows File Explorer, você pode editar os valores na guia Detalhes das propriedades de um arquivo de mídia, mas pretendo fazer isso com linha de comando ou Powershell ou outro script, ou alguma outra forma de automatizá-lo.

Para ser claro, estou me referindo às informações encontradas na guia "Detalhes" quando você visualiza as propriedades do arquivo, NÃO os atributos do arquivo.

Especificamente, os valores para "Título" e "Comentários"

eu tenteiwmicmas não oferece esses detalhes do arquivo.

Eu tentei automatizar a GUI com o AutoIt, mas encontrei muitos obstáculos e ela é muito propensa a travamentos se não for supervisionada.

Pesquisei na web e não encontrei uma única DICA de que isso possa ser feito, todas as postagens que tinham títulos que me levaram a acreditar que a resposta era enganosa ou sobre atributos de arquivo.

Isso pode ser feito? ou sou apenas louco?

EDIT: novas informações: tentei o ffmpeg, que funciona, mas a desvantagem é que ele precisa recodificar o filme inteiro ou copiá-lo, o que leva mais tempo do que o aceitável para meu projeto específico. até agora, automatizar a GUI com AutoIt é minha única opção viável.

EDIT: Solução: obrigado a @LotPings e @uSlackr por me levar ao TagLib-Sharp, agora tenho um método para fazer isso com o Powershell.

Responder1

Com a ajuda de @LotPings e @uSlackr encontreiEsta respostapara baixar diretamente a biblioteca TagLib-Sharp.dll e chamá-la diretamente com a ajuda encontrada emEssa questãoresultando em um script Powershell muito básico que consiste em ...

carregando a biblioteca...

[Reflection.Assembly]::LoadFrom( (Resolve-Path ".\taglib\Libraries\taglib-sharp.dll"))

e alterando o 'Título'

Get-ChildItem -Filter *.mp4 | ForEach-Object { [TagLib.File]::Create($_.FullName) | ForEach-Object { $_.tag.Title = 'noTitleNow' ; $_.Save() } } 

informação relacionada