How to check font file extensions used in After Effects project layers
Hi all,
I'm looking for a solution to check the font file extensions used in text layers within an After Effects project. I need to identify which font types are being used by the user, such as .ttc, .ttf, or .otf. The reason for this requirement is that our server does not accept .ttc files.
I have tried using ExtendScript and Adobe CEP to access the font properties in the text layers, but I haven't found a direct way to get the font file extensions.
Could anyone please provide guidance or a solution to check the font file extensions used in the text layers of an After Effects project? I would greatly appreciate any help or suggestions.
Thank you in advance!
Below is what I found in layers, but there is only "value" with text and can't find "font"
> app.project.item(2).layer(1).property('sourceText')
{
"methods": [
{
"name": "==()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "addKey()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "addToMotionGraphicsTemplate()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "addToMotionGraphicsTemplateAs()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "canAddToMotionGraphicsTemplate()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "duplicate()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "getSeparationFollower()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "isInterpolationTypeValid()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "keyInInterpolationType()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "keyInSpatialTangent()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "keyInTemporalEase()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "keyLabel()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "keyOutInterpolationType()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "keyOutSpatialTangent()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "keyOutTemporalEase()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "keyRoving()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "keySelected()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "keySpatialAutoBezier()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "keySpatialContinuous()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "keyTemporalAutoBezier()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "keyTemporalContinuous()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "keyTime()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "keyValue()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "moveTo()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "nearestKeyIndex()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "propertyGroup()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "remove()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "removeKey()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "setAlternateSource()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "setInterpolationTypeAtKey()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "setLabelAtKey()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "setPropertyParameters()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "setRovingAtKey()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "setSelectedAtKey()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "setSpatialAutoBezierAtKey()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "setSpatialContinuousAtKey()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "setSpatialTangentsAtKey()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "setTemporalAutoBezierAtKey()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "setTemporalContinuousAtKey()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "setTemporalEaseAtKey()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "setValue()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "setValueAtKey()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "setValueAtTime()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "setValuesAtTimes()",
"type": "any",
"isMethod": true,
"hasErr": false
},
{
"name": "valueAtTime()",
"type": "any",
"isMethod": true,
"hasErr": false
}
],
"active": true,
"canSetExpression": true,
"canVaryOverTime": true,
"enabled": true,
"isModified": true,
"matchName": "ADBE Text Document",
"maxValue": "Error: After Effects error: This property has no maximum value.",
"minValue": "Error: After Effects error: This property has no minimum value.",
"name": "Source Text",
"parentProperty": "[object PropertyGroup]",
"propertyDepth": 2,
"propertyIndex": 1,
"propertyType": 6212,
"propertyValueType": 6424,
"separationDimension": "Error: After Effects error: internal verification failure, sorry! {stream isn't separated in AEGP_GetSeparationLeader}",
"separationLeader": "Error: After Effects error: internal verification failure, sorry! {stream isn't separated in AEGP_GetSeparationLeader}",
"value": "10 sec Orange"
}