Effects

Camtasia effects — thin wrappers over effect dicts.

class camtasia.effects.Effect(data)[source]

Bases: object

Thin wrapper around a Camtasia effect dict.

Effects are stored in a clip’s effects array as dicts with keys: effectName, bypassed, category, parameters.

Each parameter is a nested dict like:

{"type": "double", "defaultValue": 16.0, "interp": "linr"}
Parameters:

data (dict[str, Any]) – The raw effect dict from the project JSON.

property data: _EffectData

The underlying raw dict.

property name: str

Effect name identifier.

property bypassed: bool

Whether the effect is bypassed (disabled).

property category: str

Effect category string.

property metadata: dict

Top-level metadata dict for this effect.

property parameters: dict[str, Any]

Effect parameters dict.

get_parameter(name)[source]

Get a parameter’s default value by name.

Parameters:

name (str) – The parameter key inside the parameters dict.

Return type:

Any

Returns:

The defaultValue of the parameter, or the scalar value directly.

Raises:

KeyError – If the parameter does not exist.

set_parameter(name, value)[source]

Set a parameter’s default value by name.

Parameters:
  • name (str) – The parameter key inside the parameters dict.

  • value (Any) – The new default value.

Raises:

KeyError – If the parameter does not exist.

Return type:

None

property start: int | None

Effect start time in ticks, or None if not time-bounded.

property duration: int | None

Effect duration in ticks, or None if not time-bounded.

property is_time_bounded: bool

Whether this effect has explicit start/duration.

property left_edge_mods: list[dict[str, Any]]

Left edge modifications (fade-in, etc.).

property right_edge_mods: list[dict[str, Any]]

Right edge modifications (fade-out, etc.).

class camtasia.effects.EffectSchema[source]

Bases: object

Stub for legacy marshmallow-based EffectSchema.

Install marshmallow and marshmallow-oneofschema to use the full schema-based serialization.

camtasia.effects.effect_from_dict(data)[source]

Create the appropriate Effect subclass from a raw effect dict.

Parameters:

data (dict[str, Any]) – A dict with at least an effectName key.

Return type:

Effect

Returns:

An instance of the matching Effect subclass, or a generic Effect if no specific class is registered.

class camtasia.effects.RoundCorners(data)[source]

Bases: Effect

Round corners effect.

Parameters:
  • radius

  • topLeft

  • topRight

  • bottomLeft

  • bottomRight

property radius: float

Corner radius in pixels.

property top_left: bool

Whether the top-left corner is rounded.

property top_right: bool

Whether the top-right corner is rounded.

property bottom_left: bool

Whether the bottom-left corner is rounded.

property bottom_right: bool

Whether the bottom-right corner is rounded.

class camtasia.effects.DropShadow(data)[source]

Bases: Effect

Drop shadow effect.

Parameters:
  • angle (RGBA via separate keys)

  • offset (RGBA via separate keys)

  • blur (RGBA via separate keys)

  • opacity (RGBA via separate keys)

  • color (RGBA via separate keys)

property angle: float

Shadow angle in radians.

property enabled: int
property offset: float

Shadow offset distance in pixels.

property blur: float

Shadow blur radius.

property opacity: float

Shadow opacity from 0.0 (transparent) to 1.0 (opaque).

property color: tuple[float, float, float, float]

RGBA color as (red, green, blue, alpha) floats.

class camtasia.effects.MotionBlur(data)[source]

Bases: Effect

Motion blur effect.

Parameters:

intensity

property intensity: float

Blur intensity level.

class camtasia.effects.Mask(data)[source]

Bases: Effect

Mask effect.

Parameters:
  • mask-shape

  • mask-opacity

  • mask-blend

  • mask-invert

  • mask-rotation

:param : :param mask-width: :param mask-height: :param mask-positionX: :param mask-positionY: :param mask-cornerRadius.:

Width, height, and position parameters may be keyframed (dict with keyframes array) or simple scalar values.

property mask_shape: int

Mask shape identifier.

property mask_opacity: float

Mask opacity from 0.0 (transparent) to 1.0 (opaque).

property mask_blend: float

Mask edge blend (feather) amount.

property mask_invert: int

Whether the mask is inverted (1) or normal (0).

property mask_rotation: float

Mask rotation angle in radians.

property mask_width: float | dict

Mask width, scalar or keyframed dict.

property mask_height: float | dict

Mask height, scalar or keyframed dict.

property mask_position_x: float | dict

Mask horizontal position, scalar or keyframed dict.

property mask_position_y: float | dict

Mask vertical position, scalar or keyframed dict.

property mask_corner_radius: float

Mask corner radius.

class camtasia.effects.BlurRegion(data)[source]

Bases: Effect

Blur region effect.

Warning

This effect is registered but has not been verified against any TechSmith sample project. Parameter names and semantics may differ from what Camtasia actually produces.

Parameters:
  • sigma

  • mask-cornerRadius

  • mask-invert

  • color-alpha

property sigma: float

Gaussian blur sigma value.

property mask_corner_radius: float

Corner radius of the blur region mask.

property mask_invert: int

Whether the blur region mask is inverted (1) or normal (0).

property color_alpha: float

Alpha channel of the blur region overlay color.

class camtasia.effects.Glow(data)[source]

Bases: Effect

Bloom/glow post-processing effect.

Parameters:
  • radius

  • intensity

property radius: float

Glow spread radius.

property intensity: float

Glow intensity level.

class camtasia.effects.CursorMotionBlur(data)[source]

Bases: Effect

Cursor motion blur effect.

Parameters:

intensity

property intensity: float

Blur intensity level.

class camtasia.effects.CursorPhysics(data)[source]

Bases: Effect

Cursor physics effect.

Parameters:
  • intensity

  • tilt

property intensity: float

Physics effect intensity.

property tilt: float

Cursor tilt amount.

class camtasia.effects.CursorShadow(data)[source]

Bases: Effect

Cursor shadow effect.

Parameters:
  • angle (RGBA)

  • offset (RGBA)

  • blur (RGBA)

  • opacity (RGBA)

  • color (RGBA)

property angle: float

Shadow angle in radians.

property offset: float

Shadow offset distance in pixels.

property blur: float

Shadow blur radius.

property opacity: float

Shadow opacity from 0.0 (transparent) to 1.0 (opaque).

property color: tuple[float, float, float, float]

RGBA color as (red, green, blue, alpha) floats.

class camtasia.effects.LeftClickScaling(data)[source]

Bases: Effect

Left-click cursor scaling effect.

Parameters:
  • scale

  • speed

property scale: float

Click scale factor.

property speed: float

Scaling animation speed.

class camtasia.effects.SourceEffect(data)[source]

Bases: Effect

Source effect for shader video parameters.

Parameters:
  • Color0-3 (RGBA via separate keys)

  • Speed

  • sourceFileType.

property color0: tuple[float, float, float, float]

First shader color as RGBA floats.

property color1: tuple[float, float, float, float]

Second shader color as RGBA floats.

property color2: tuple[float, float, float, float] | None

Third shader color as RGBA floats, or None if not present.

property color3: tuple[float, float, float, float] | None

Fourth shader color as RGBA floats, or None if not present.

property mid_point: tuple[float, float] | float

Mid point position. Returns (x, y) tuple for four-corner gradients or a single float for radial gradients.

property speed: float

Shader animation speed.

property source_file_type: str

Source file type identifier for the shader.

set_shader_colors(*colors)[source]

Set shader colours from 0-255 RGB tuples.

Accepts 2 colors (radial gradient) or 4 colors (four-corner gradient). Alpha is set to 1.0 for all colours.

Parameters:

colors (tuple[int, int, int]) – (r, g, b) tuples with values 0–255.

Return type:

None

class camtasia.effects.BehaviorPhase(data)[source]

Bases: object

Wraps a single behavior phase dict (in, center, or out).

Each phase has attributes controlling character-level animation timing and physics, plus parameters for direction/style keyframes.

Parameters:

data (dict[str, Any]) – The raw phase dict from the behavior effect.

property data: _BehaviorPhaseData

The underlying raw dict.

property name: str

Behavior name (e.g. 'reveal', 'none').

property phase_type: int

0 = whole-object, 1 = per-character.

Type:

Animation granularity

property character_order: int

Order in which characters animate (e.g. left-to-right, random).

property offset_between_characters: int

Delay between characters in ticks.

property suggested_duration_per_character: int

Suggested duration per character in ticks.

property overlap_proportion: int | float | str

Overlap proportion — may be int, float, or string fraction (e.g. '1/2').

property movement: int

Movement enum for animation direction/style.

property spring_damping: float

Spring damping coefficient for bounce animations.

property spring_stiffness: float

Spring stiffness coefficient for bounce animations.

property bounce_bounciness: float

Bounciness factor for bounce animations.

property parameters: dict[str, Any]

Raw parameters dict (direction keyframes, etc.).

class camtasia.effects.GenericBehaviorEffect(data)[source]

Bases: object

Wraps a GenericBehaviorEffect dict — Camtasia’s text behavior system.

Unlike regular effects, behavior effects have a _type field set to 'GenericBehaviorEffect' and contain three animation phases (in, center, out) instead of flat parameters.

Parameters:

data (dict[str, Any]) – The raw behavior effect dict from the project JSON.

property data: _BehaviorEffectData

The underlying raw dict.

property effect_name: str

Effect name identifier.

property bypassed: bool

Whether the effect is bypassed (disabled).

property start: int

Start time in ticks.

property duration: int

Duration in ticks.

property entrance: BehaviorPhase

The in (entrance) phase.

property center: BehaviorPhase

The center (sustain/loop) phase.

property exit: BehaviorPhase

The out (exit) phase.

property preset_name: str

Preset name from metadata (e.g. 'Reveal').

Base effect class wrapping Camtasia effect dicts.

class camtasia.effects.base.Effect(data)[source]

Bases: object

Thin wrapper around a Camtasia effect dict.

Effects are stored in a clip’s effects array as dicts with keys: effectName, bypassed, category, parameters.

Each parameter is a nested dict like:

{"type": "double", "defaultValue": 16.0, "interp": "linr"}
Parameters:

data (dict[str, Any]) – The raw effect dict from the project JSON.

property data: _EffectData

The underlying raw dict.

property name: str

Effect name identifier.

property bypassed: bool

Whether the effect is bypassed (disabled).

property category: str

Effect category string.

property metadata: dict

Top-level metadata dict for this effect.

property parameters: dict[str, Any]

Effect parameters dict.

get_parameter(name)[source]

Get a parameter’s default value by name.

Parameters:

name (str) – The parameter key inside the parameters dict.

Return type:

Any

Returns:

The defaultValue of the parameter, or the scalar value directly.

Raises:

KeyError – If the parameter does not exist.

set_parameter(name, value)[source]

Set a parameter’s default value by name.

Parameters:
  • name (str) – The parameter key inside the parameters dict.

  • value (Any) – The new default value.

Raises:

KeyError – If the parameter does not exist.

Return type:

None

property start: int | None

Effect start time in ticks, or None if not time-bounded.

property duration: int | None

Effect duration in ticks, or None if not time-bounded.

property is_time_bounded: bool

Whether this effect has explicit start/duration.

property left_edge_mods: list[dict[str, Any]]

Left edge modifications (fade-in, etc.).

property right_edge_mods: list[dict[str, Any]]

Right edge modifications (fade-out, etc.).

camtasia.effects.base.register_effect(name)[source]

Class decorator to register an Effect subclass for factory dispatch.

Return type:

Callable[[type[Effect]], type[Effect]]

camtasia.effects.base.effect_from_dict(data)[source]

Create the appropriate Effect subclass from a raw effect dict.

Parameters:

data (dict[str, Any]) – A dict with at least an effectName key.

Return type:

Effect

Returns:

An instance of the matching Effect subclass, or a generic Effect if no specific class is registered.

Visual effects: RoundCorners, DropShadow.

class camtasia.effects.visual.RoundCorners(data)[source]

Bases: Effect

Round corners effect.

Parameters:
  • radius

  • topLeft

  • topRight

  • bottomLeft

  • bottomRight

property radius: float

Corner radius in pixels.

property top_left: bool

Whether the top-left corner is rounded.

property top_right: bool

Whether the top-right corner is rounded.

property bottom_left: bool

Whether the bottom-left corner is rounded.

property bottom_right: bool

Whether the bottom-right corner is rounded.

class camtasia.effects.visual.DropShadow(data)[source]

Bases: Effect

Drop shadow effect.

Parameters:
  • angle (RGBA via separate keys)

  • offset (RGBA via separate keys)

  • blur (RGBA via separate keys)

  • opacity (RGBA via separate keys)

  • color (RGBA via separate keys)

property angle: float

Shadow angle in radians.

property enabled: int
property offset: float

Shadow offset distance in pixels.

property blur: float

Shadow blur radius.

property opacity: float

Shadow opacity from 0.0 (transparent) to 1.0 (opaque).

property color: tuple[float, float, float, float]

RGBA color as (red, green, blue, alpha) floats.

class camtasia.effects.visual.MotionBlur(data)[source]

Bases: Effect

Motion blur effect.

Parameters:

intensity

property intensity: float

Blur intensity level.

class camtasia.effects.visual.Mask(data)[source]

Bases: Effect

Mask effect.

Parameters:
  • mask-shape

  • mask-opacity

  • mask-blend

  • mask-invert

  • mask-rotation

:param : :param mask-width: :param mask-height: :param mask-positionX: :param mask-positionY: :param mask-cornerRadius.:

Width, height, and position parameters may be keyframed (dict with keyframes array) or simple scalar values.

property mask_shape: int

Mask shape identifier.

property mask_opacity: float

Mask opacity from 0.0 (transparent) to 1.0 (opaque).

property mask_blend: float

Mask edge blend (feather) amount.

property mask_invert: int

Whether the mask is inverted (1) or normal (0).

property mask_rotation: float

Mask rotation angle in radians.

property mask_width: float | dict

Mask width, scalar or keyframed dict.

property mask_height: float | dict

Mask height, scalar or keyframed dict.

property mask_position_x: float | dict

Mask horizontal position, scalar or keyframed dict.

property mask_position_y: float | dict

Mask vertical position, scalar or keyframed dict.

property mask_corner_radius: float

Mask corner radius.

class camtasia.effects.visual.Glow(data)[source]

Bases: Effect

Bloom/glow post-processing effect.

Parameters:
  • radius

  • intensity

property radius: float

Glow spread radius.

property intensity: float

Glow intensity level.

class camtasia.effects.visual.BlurRegion(data)[source]

Bases: Effect

Blur region effect.

Warning

This effect is registered but has not been verified against any TechSmith sample project. Parameter names and semantics may differ from what Camtasia actually produces.

Parameters:
  • sigma

  • mask-cornerRadius

  • mask-invert

  • color-alpha

property sigma: float

Gaussian blur sigma value.

property mask_corner_radius: float

Corner radius of the blur region mask.

property mask_invert: int

Whether the blur region mask is inverted (1) or normal (0).

property color_alpha: float

Alpha channel of the blur region overlay color.

Cursor effects: CursorMotionBlur, CursorShadow, CursorPhysics, LeftClickScaling.

class camtasia.effects.cursor.CursorMotionBlur(data)[source]

Bases: Effect

Cursor motion blur effect.

Parameters:

intensity

property intensity: float

Blur intensity level.

class camtasia.effects.cursor.CursorShadow(data)[source]

Bases: Effect

Cursor shadow effect.

Parameters:
  • angle (RGBA)

  • offset (RGBA)

  • blur (RGBA)

  • opacity (RGBA)

  • color (RGBA)

property angle: float

Shadow angle in radians.

property offset: float

Shadow offset distance in pixels.

property blur: float

Shadow blur radius.

property opacity: float

Shadow opacity from 0.0 (transparent) to 1.0 (opaque).

property color: tuple[float, float, float, float]

RGBA color as (red, green, blue, alpha) floats.

class camtasia.effects.cursor.CursorPhysics(data)[source]

Bases: Effect

Cursor physics effect.

Parameters:
  • intensity

  • tilt

property intensity: float

Physics effect intensity.

property tilt: float

Cursor tilt amount.

class camtasia.effects.cursor.LeftClickScaling(data)[source]

Bases: Effect

Left-click cursor scaling effect.

Parameters:
  • scale

  • speed

property scale: float

Click scale factor.

property speed: float

Scaling animation speed.

Source effects for shader videos.

class camtasia.effects.source.SourceEffect(data)[source]

Bases: Effect

Source effect for shader video parameters.

Parameters:
  • Color0-3 (RGBA via separate keys)

  • Speed

  • sourceFileType.

property color0: tuple[float, float, float, float]

First shader color as RGBA floats.

property color1: tuple[float, float, float, float]

Second shader color as RGBA floats.

property color2: tuple[float, float, float, float] | None

Third shader color as RGBA floats, or None if not present.

property color3: tuple[float, float, float, float] | None

Fourth shader color as RGBA floats, or None if not present.

property mid_point: tuple[float, float] | float

Mid point position. Returns (x, y) tuple for four-corner gradients or a single float for radial gradients.

property speed: float

Shader animation speed.

property source_file_type: str

Source file type identifier for the shader.

set_shader_colors(*colors)[source]

Set shader colours from 0-255 RGB tuples.

Accepts 2 colors (radial gradient) or 4 colors (four-corner gradient). Alpha is set to 1.0 for all colours.

Parameters:

colors (tuple[int, int, int]) – (r, g, b) tuples with values 0–255.

Return type:

None

GenericBehaviorEffect — Camtasia’s text animation/behaviors system.

class camtasia.effects.behaviors.BehaviorPhase(data)[source]

Bases: object

Wraps a single behavior phase dict (in, center, or out).

Each phase has attributes controlling character-level animation timing and physics, plus parameters for direction/style keyframes.

Parameters:

data (dict[str, Any]) – The raw phase dict from the behavior effect.

property data: _BehaviorPhaseData

The underlying raw dict.

property name: str

Behavior name (e.g. 'reveal', 'none').

property phase_type: int

0 = whole-object, 1 = per-character.

Type:

Animation granularity

property character_order: int

Order in which characters animate (e.g. left-to-right, random).

property offset_between_characters: int

Delay between characters in ticks.

property suggested_duration_per_character: int

Suggested duration per character in ticks.

property overlap_proportion: int | float | str

Overlap proportion — may be int, float, or string fraction (e.g. '1/2').

property movement: int

Movement enum for animation direction/style.

property spring_damping: float

Spring damping coefficient for bounce animations.

property spring_stiffness: float

Spring stiffness coefficient for bounce animations.

property bounce_bounciness: float

Bounciness factor for bounce animations.

property parameters: dict[str, Any]

Raw parameters dict (direction keyframes, etc.).

class camtasia.effects.behaviors.GenericBehaviorEffect(data)[source]

Bases: object

Wraps a GenericBehaviorEffect dict — Camtasia’s text behavior system.

Unlike regular effects, behavior effects have a _type field set to 'GenericBehaviorEffect' and contain three animation phases (in, center, out) instead of flat parameters.

Parameters:

data (dict[str, Any]) – The raw behavior effect dict from the project JSON.

property data: _BehaviorEffectData

The underlying raw dict.

property effect_name: str

Effect name identifier.

property bypassed: bool

Whether the effect is bypassed (disabled).

property start: int

Start time in ticks.

property duration: int

Duration in ticks.

property entrance: BehaviorPhase

The in (entrance) phase.

property center: BehaviorPhase

The center (sustain/loop) phase.

property exit: BehaviorPhase

The out (exit) phase.

property preset_name: str

Preset name from metadata (e.g. 'Reveal').