OSX: atribuir extensão ao tipo de conteúdo

13

Aqui eu tenho uma pasta contendo um monte de arquivos * .mkv (vídeo, obviamente) e arquivos * .srt (legendas, obviamente). Quero mantê-los em uma pasta, mas não quero que eles sejam misturados. Parece uma boa ideia organizá-los visualmente em dois grupos separados.

No entanto, nenhuma das extensões é reconhecida pelo sistema e ainda é colocada sob um grupo "Documentos", o que claramente não é o que eu quero.

A pergunta: como dizer ao sistema que todos os arquivos * .mkv devem ser tratados como "Mídia" (ou "Vídeos", ou qualquer que seja o nome do grupo de arquivos para arquivos de vídeo)?

Obrigado.

EDITAR:

@Daniel,oprogramaassociadoéMPlayerXeasaídadessecomandoéaseguinte:

imac:GameofThronesarnold$mdls"Game of Thrones 1×2.mkv"
kMDItemContentCreationDate     = 2011-12-15 10:31:20 +0000
kMDItemContentModificationDate = 2011-12-27 09:09:55 +0000
kMDItemContentType             = "dyn.ah62d4rv4ge804450"
kMDItemContentTypeTree         = (
    "public.data",
    "public.item"
)
kMDItemDateAdded               = 2011-12-27 09:22:55 +0000
kMDItemDisplayName             = "Game Of Thrones 1×2.mkv"
kMDItemFSContentChangeDate     = 2011-12-27 09:09:55 +0000
kMDItemFSCreationDate          = 2011-12-15 10:31:20 +0000
kMDItemFSCreatorCode           = ""
kMDItemFSFinderFlags           = 0
kMDItemFSHasCustomIcon         = 0
kMDItemFSInvisible             = 0
kMDItemFSIsExtensionHidden     = 0
kMDItemFSIsStationery          = 0
kMDItemFSLabel                 = 0
kMDItemFSName                  = "Game of Thrones 1×2.mkv"
kMDItemFSNodeCount             = 220877659
kMDItemFSOwnerGroupID          = 99
kMDItemFSOwnerUserID           = 99
kMDItemFSSize                  = 220877659
kMDItemFSTypeCode              = ""
kMDItemKind                    = "Video Media"
kMDItemLogicalSize             = 220877659
kMDItemPhysicalSize            = 220880896
imac:Game of Thrones arnold$ 

Por incrível que pareça, o "Tipo de item" aparece como "Mídia de vídeo". E para um arquivo de legenda, é "Legenda". Ainda assim, não ajuda o Finder a organizar esses arquivos corretamente por algum motivo…

    
por Arnold 27.12.2011 / 10:05

1 resposta

11

Você precisa usar um aplicativo que declare a associação correta de tipo de arquivo para, por exemplo, a extensão de nome de arquivo .mkv .

Por exemplo, os tipos de arquivo definidos pelo sistema em /System/Library/CoreServices/CoreTypes.bundle/Contents/Info.plist declaram o seguinte na seção UTIs do tipo Exportado :

enter image description hereenter image description here

Isso permite que o sistema associe a UTI public.jpeg com o "grupo UTI" public.image , que é (muito provável) o que o Finder usa para o grupo Imagens ; o tipo de public.filename-extensions equivalente é mapeado para a extensão do arquivo.

Isso permite que o OS X determine que o arquivo .jpg tem o UTI public.jpeg e que é um sub-UTI de public.image (e assim por diante, com public.item e public.data ). O Finder pega todos os arquivos que são (também) public.image e os coloca no mesmo grupo Imagens .

O mesmo se aplica a public.mpeg-4 e public.movie e ao mapeamento de nomes de arquivo.

Infelizmente, o autor do MPlayerX não se incomodou em mapear as UTIs.

Ele nem se incomodou em criar tipos de arquivos apropriados para todas as extensões que o programa suporta. É por isso que na visualização de lista do Finder , todos os arquivos .mkv não são chamados, Vídeo Matroska , e tem um marcador MKV correspondente em seu ícone, mas simplesmente Mídia de Vídeo com um rótulo genérico Vídeo . Todos os tipos de arquivos suportados são listados por extensão de arquivo para este "formato de arquivo", então o MPlayerX pode abri-los:

enter image description here

Isso significa, por exemplo, se você preferir reproduzir .m4a arquivos no MPlayerX para o iTunes, perderá o áudio MPEG-4 da Apple na coluna Kind do Kinder e obtenha Audio Media em seu lugar.

Você pode corrigir o agrupamento editando o arquivo /Applications/MPlayerX.app/Contents/Info.plist e declarando corretamente, um mplayerx.video UTI que está em conformidade com public.movie e adicionando o mapeamento de extensão de nome de arquivo adequado.

Você pode corrigir a coluna Kind editando o mesmo arquivo, declarando corretamente os tipos de arquivo com uma descrição melhor e criando um arquivo de ícone para cada um.

Basta usar o arquivo Tipos Principais Info.plist como modelo, substituindo, por exemplo, public.jpeg com seu próprio identificador personalizado (por exemplo, mplayerx.video se você não quiser colunas e ícones adequados Kind , ou mplayerx.mkv , se desejar). Você precisa do Xcode para editar esses arquivos ou convertê-los para XML editável em qualquer editor de texto usando plutil -convert xml1 <filename> .

Suas alterações, que são fáceis de serem erradas, serão substituídas com todas as atualizações do aplicativo.

Como alternativa, pelo menos para o Finder Organizar por Tipo , você pode editar as definições dos tipos principais e adicionar suas próprias definições. Certifique-se de editar uma cópia do arquivo e substituí-lo após a edição para contornar os problemas de permissão. Esteja ciente de que você estará editando e substituindo arquivos principais do sistema (ou seja, solicitando problemas) ao fazer isso.

Uma solução mais adequada seria criar um novo aplicativo "fictício" que simplesmente declara o tipo de arquivo UTIs como UTIs do tipo exportado . Isso será usado pelo banco de dados do tipo de arquivo do OS X e você poderá atualizar o OS X e o MPlayerX sem perder as associações de tipo de conteúdo. Mesmo se você mudar, e. .m4a para o MPlayerX, somente a coluna Kind é alterada, ainda está na categoria Movie , devido às declarações em outro aplicativo independente do aplicativo associado.

Então, crie um novo aplicativo , por exemplo usando o Automator que, na verdade, não faz nada quando é lançado, e adiciona o seguinte ao arquivo Contents/Info.plist :

enter image description here

Salvar em /Applications ou mais e reiniciar o Finder.

enter image description here

Parcial mdls output do arquivo .mkv , tipo de conteúdo fornecido pelo "aplicativo auxiliar", tipo de item fornecido pelo player associado (MPlayerX):

kMDItemContentType             = "superuser.371939.mkv"
kMDItemContentTypeTree         = (
    "superuser.371939.mkv",
    "public.movie",
    "public.audiovisual-content",
    "public.data",
    "public.item",
    "public.content"
)
...
kMDItemKind                    = "Video Media"

Como esta é apenas uma integração desleixada da plataforma pelo desenvolvedor, você provavelmente deve registrar um bug.

    
por 27.12.2011 / 13:34