Mac批量设置视频文件默认打开方式为Movist

2016-07-21

Mac批量设置视频文件默认打开方式为Movist

在Mac中播放视频软件最好的,应当属于Movist,但是Movist中我并没有找到将其作为视频的默认播放器设置

而Mac单独设置一类文件作为默认打开方式可以这样做:

文件名右键 -> 显示简介 -> 打开方式 -> 全部更改

但是,这样一个个类型的修改比较麻烦,有没有更好的办法?

当然是有的

快速配置

安装duti

1
brew install duti

如果brew都没有,执行下面命令安装brew

1
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

配置常见视频使用Movist打开

不需要知道原理的可以直接打开终端(shell),执行一下代码

1
2
3
4
5
6
7
8
9
duti -s com.movist.movist public.movie viewer
duti -s com.movist.movist public.avi viewer
duti -s com.movist.movist public.mpeg viewer
duti -s com.movist.movist public.mpeg-4 viewer
duti -s com.movist.movist public.3gpp viewer
duti -s com.movist.movist public.3gpp2 viewer
duti -s com.movist.movist com.apple.quicktime-movie viewer
duti -s com.movist.movist com.real.realmedia viewer
duti -s com.movist.movist com.adobe.flash.video viewer

原理

Bundle ID

Bundle ID (应用标识符)) 是 iOS 或者 Mac 应用的唯一标识.

com.movist.movist就是Movist的Bundle ID

那么,怎么看一个应用的Bundle ID ?

1
2
3
osascript -e 'id of app "Finder"'

osascript -e 'id of app "Movist"'

UTI(Uniform Type Identifiers)

有了Bundle ID,还需要UTI,其实可以理解为文件类型标示,类似后缀名,但不是后缀名,苹果系统是通过文件的UTI关联的是那个应用,然后会通过关联的应用来打开这个文件,当然后缀名和这个东西也是有某种关联关系的,这里暂不讨论

怎么看?

  • 苹果的网站上有列出一些

https://developer.apple.com/library/mac/documentation/Miscellaneous/Reference/UTIRef/Articles/System-DeclaredUniformTypeIdentifiers.html

  • 通过mdls命令查看,看
1
Movies  >mdls IMG_2436.MP4

kMDItemContentType,kMDItemContentTypeTree就是UTI,kMDItemContentType优先

开始实践

简单说,就是通过duti命令来查看和关联文件和打开应用

查看UTI关联的应用:

1
duti -d public.movie

配置一个public.movie类型的文件关联movist

1
duti -s com.movist.movist public.movie viewer

详细参数说明

  • -s : 选项会让 duti 从命令行读参数.
  • -x ext : 选项会让 duti 输出参数中扩展名对应的默认应用
  • -d uti : 打印 UTI 的默认应用.
  • -l uti : 打印 UTI 的所有可用应用.
  • -V: 打印版本.
  • -v: 详细输出.
  • -h: 帮助.

通过读取文件配置

使用 -s 选项, 从命令行读取参数:

1
2
duti -s com.apple.Safari public.html all
duti -s com.apple.Finder ftp

如果配置项特别多可以把配置保存到文本文件中,方面以后编辑管理,格式如下

1
2
3
4
5
6
7
8
9
10
11
12
com.movist.movist public.movie viewer
com.movist.movist public.avi viewer
com.movist.movist public.mpeg viewer
com.movist.movist public.mpeg-4 viewer
com.movist.movist com.microsoft.win dows-​media-wm viewer
com.movist.movist com.microsoft.windows-​media-wmv viewer
com.movist.movist com.microsoft.windows-​media-wmp viewer
com.movist.movist public.3gpp viewer
com.movist.movist public.3gpp2 viewer
com.movist.movist com.apple.quicktime-movie viewer
com.movist.movist com.real.realmedia viewer
com.movist.movist com.adobe.flash.video viewer

比如就保存叫 duti-files, 然后执行duti命令,

1
duti duti-files

即可完成格式的关联

其他文件格式关联

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# *.md
duti -s com.uranusjr.macdown net.daringfireball.markdown all

# 音频格式关联
# *.flac
duti -s com.coppertino.Vox dyn.ah62d4rv4ge80q5dbqq all

# *.mp3
duti -s com.coppertino.Vox public.mp3 all

# *.m4a
duti -s com.coppertino.Vox com.apple.m4a-audio all

# *.ape
duti -s com.coppertino.Vox dyn.ah62d4rv4ge80c6df all

# *.cue
duti -s com.coppertino.Vox com.coppertino.vox.cue all

# *.wav
duti -s com.coppertino.Vox com.microsoft.waveform-audio all