Skip to main content

很少有两个创意流程是相同的,这就是为什么我们建立了ftrack API。通过ftrack API,你可以定制ftrack Studio来满足需求,与独特的工作流同步交付项目。

ftrack Python API可以帮助实现很多问题。譬如,有一个软件还未和ftrack Studio集成,但你迫切需要这个集成;或者想为你的工作室招聘流程创建一些特别的东西,像是为新人设置一个特别的ftrack Studio指导;或者你只是厌倦了花大量时间在那些可以更高效地批量自动化的任务上。

如果你对尝试ftrack API感兴趣,但又不确定从哪里开始,在下面,我们将介绍如何设置和运行ftrack API。你可以按照我们的指南开始使用ftrack API,还有一些链接帮助你起步。

先来看看网易、Epic Games和Cubic Motion是如何利用ftrack API改善工作流:

Plarium Global

网易游戏

Cubic Motion

使用ftrack API的入门指南

ftrack主要是一个具有直观、现代界面的网络应用,让用户在生产过程中与创意项目及其资产互动。如果你想深入挖掘,开始自动化流程,来一起潜心研究ftrack API的力量。

下面,我们将介绍一下开始使用ftrack的Python API(https://ftrack-python-api.readthedocs.io/en/stable/index.html)的步骤。由于Python的易用性和可读性,我们将在这个例子中使用Python(这两点是Python成为行业标准编程语言的原因)。

如果你遇到困难,你可以在以下文档中找到支持:

  • 文档: https://ftrack-python-api.readthedocs.io/en/stable/
  • ftrack的社区支持: https://forum.ftrack.com/?_ga=2.150256118.1112973211.1648012542-2100902558.1588150031
  • 最近的ftrack API 2.0更新:https://ftrack-python-api.readthedocs.io/en/stable/
  • 初学者使用ftrack Python API必看:ftrack-python-api.readthedocs.io/en/stable

1. 安装Python

如果你没有安装 Python,那么第一步就是安装它。很有可能你的系统已经包含了Python,但如果没有,你可以从python.org获得。在这篇文章中,我们会使用 Python 3.8。

安装完毕后,确认你有Python:

$ python —version
python 3.8.9

2. 建立一个虚拟环境进行实验

使用Python时,还有一个很好的工具是虚拟环境,用Python的venv模块创建。虚拟环境允许你建立一个沙盒,这样你可以指定使用的 Python 版本,安装 Python 模块,而不会影响你的系统的 Python 环境。你可以用以下指令创建激活一个虚拟环境。

$ python3 -m venv /path/to/new/virtual/environment
$ cd /path/to/new/virtual/environment
$ source ./bin/activate

请注意,这是我们对通过虚拟环境使用 Python 的建议/最佳实践方法。还有其他的选择,但在本教程中我们将坚持采用这种方法。

3.  装ftrack API和iPython

现在我们可以用PIP(Python软件包安装程序)来安装ftrack API。下面是要运行的内容:

$ pip install ftrack-python-api
[…some output omitted…]
Successfully installed ftrack-python-api-2.3.0

另一个在探索新的API时特别有用的模块是iPython。iPython是一个增强的交互式Python shell,帮助你充分利用Python的交互式使用。

iPython不是必需的,但在你交互式地探索API的时候,有它会很好。用以下方法安装iPython:

  • Comprehensive object introspection.
  • Input history, persistent across sessions.
  • Extensible tab completion, with support by default for completion of python variables and keywords, filenames, and function keywords.

iPython不是必需的,但在你交互式地探索API的时候,有它会很好。用以下方法安装iPython:

$ pip install ipython

然后,用以下指令启动一个ipython shell:

% ipython
Python 3.8.9 (default, Oct 26 2021, 07:25:54)
Type 'copyright', 'credits' or 'license' for more information
IPython 8.0.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]:

4. 获取API认证凭证

你还需要一个东西,就是API认证凭证。可以在ftrack Studio的账户页面上获得API认证凭证。到的 “我的账户”页面,可以看到一个 “个人API密钥”,你的 “用户名”(电子邮件),以及你的ftrack实例在浏览器地址栏的基本URL。一旦有了这些凭证,可以通过为你的shell(bash,zsh)设置以下环境变量来配置它们:

或者,你可以在创建会话对象(用它来与API交互)时在代码中输入你的证书:

In [1]: import ftrack_api
In [2]: session = ftrack_api.Session(
   ...: server_url="https://mycompany.ftrackapp.com",
   ...: api_key="7545384e-a653-11e1-a82c-f22c11dd25eq",
   ...: api_user="[email protected]",
   ...: )

或者,如果你使用环境变量配置了你的证书,那么这些命令会是:

In [1]: import ftrack_api
In [2]: session = ftrack_api.Session()

注意在上面的例子中,我们首先导入了ftrack API包。然后我们配置实例化了一个会话对象。如果这两个指令的运行都没有错误,那么你就可以继续了!

与ftrack服务器的所有通信都是通过会话对象进行的。如果想了解更多关于这个对象的工作原理,可以查看文档

5. 探索你的项目数据

理想情况下,你的API凭证将允许你读取和写入数据到你的服务器。虽然两者都很重要,但在只读模式下探索是最容易的。因此,让我们写下我们的第一个查询。但首先,让我们看一下我们数据库中的所有 “类型”。做到这一点,先在iPython会话中输入以下内容:

In [3]: session.types.keys()
Out[3]: dict_keys(['Asset', 'Milestone', 'Task', 'Project', 'Note', ‘Shot', ‘Sequence'])

你会看到上面有一个更长的类型列表,但为了简单起见,这里减少了这个列表。

让我们从项目类型开始,下面是一个列出所有ftrack Studio项目的查询:

In [4]: session.query("Project").all()
Out[4]:
[<dynamic ftrack Project object 4569254112>,
 <dynamic ftrack Project object 4568971584>,
 <dynamic ftrack Project object 4568970912>]

更好的是通过print结果集中的每个项目的 “name”来迭代这个查询的结果:

In [5]: projects = session.query(“Project”).all()
In [6]: [p["name"] for p in projects]
Out[6]:
[‘Demo Project’,
 ‘Avengers Movie',
 ‘Fender Commercial']

让我们以第一个项目为例,探索它的一些属性和它们所指向的实体,在探索中继续向下进入对象树:

In [7]: demo_project = projects[0]
Out[7]:
[('created_at', <Arrow [2020-05-19T10:19:07+00:00]>),
 ('managers', <ftrack_api.collection.Collection at 0x110648c70>),
 ('calendar_events', <ftrack_api.collection.Collection at 0x110557130>),
 ('color', '#FFEB3B'),
 ('_link',
[{'type': 'Project',
  'id': '2c5fc83e-99ba-11ea-9970-ca9d6ff8834e',
  'name': ‘Demo Project'}]),
 ('full_name', 'Demo Project'),
 ('disk', <dynamic ftrack Disk object 4936562864>),
 ('children', <ftrack_api.collection.Collection at 0x1105d1f70>),
 ('timelogs', <ftrack_api.collection.Collection at 0x1263dfc70>),
 ('end_date', <Arrow [2021-12-31T00:00:00+00:00]>),
 ('parent_id', None),
 ('created_by', <dynamic ftrack User object 4936948464>),
[…some output omitted…]

现在我们看到了我们项目的所有顶层属性和它们各自的类型。我们可以访问每一个属性,基于每一个后续的实体类型,我们可以通过项目的层次结构向下检查或迭代。例如,要查看我们在Demo项目中有多少个”日历事件”,你可以像这样简单地做:

In [8]: len(demo_project[“calendar_events"])
Out[8]: 49

一旦你对查询(”reading”)感到满意,那么就可以继续修改和创建(”writing”)。为此,我们将指导你查阅API文档。

资源

下面是一些链接和资源,以便在探索ftrack API时使用。如果在过程中有任何问题,请随时发邮件到[email protected],或添加微信号ftrack和我们取得联系。

探索 ftrack API

开始免费的ftrack Studio试用,看看ftrack API如何支持您的下一个项目。

立即试用

更多新闻

德国奥斯卡2023年得主:这家工作室是怎么做到的?

| 人物专访 | No Comments
来自德国柏林的Cine Chromatix在2023年的Lola奖中获得最佳视觉特效奖

审阅效率升级!可审阅音频,上传超5GB文件…

| 产品 | No Comments
我们更新了媒体审阅,进一步提高了审阅的效率和精确性!

cineSync 5新功能:Wacom支持、播放控制和全新的批注

| 产品 | No Comments
最近cineSync 5也有一些最新,一起来享受使用cineSync时更加流畅、高效的工作流程!

新功能来啦!全新的UI视图、搜索设置和强大的API特性

| 产品 | No Comments
我们在Studio中引入的一些超赞的新功能,旨在将用户体验提升到一个新的水平!

面板功能升级!编辑、更新和自定义功能

| 产品 | No Comments
我们对ftrack Studio的概述面板进行了一些调整,一起看看~
Fika

天线宝宝进入动捕与虚幻引擎技术时代:探寻幕后制作奥秘!

| 人物专访 | No Comments
天线宝宝时间~ 天线宝宝时间~

iconik x cineSync强强联手的集成:打造高质量、流程又安全的媒体审阅

| 产品 | No Comments
我们非常激动地向大家介绍全新的iconik x cineSync集成!

澳洲最大的动画制作公司:像素动物园,你知道吗?

| 人物专访 | No Comments
Pixel Zoo是澳大利亚最大的动画制作公司之一,在这个竞争激烈的领域里不断创新并取得了不少成就。