Source code for camtasia.export.csv_export

"""Export timeline data as CSV."""
from __future__ import annotations
import csv
from pathlib import Path
from typing import TYPE_CHECKING
if TYPE_CHECKING:
    from camtasia.project import Project


[docs] def export_csv(project: Project, output_path: str | Path) -> Path: """Export timeline clip data as CSV. Columns: track_name, track_index, clip_id, clip_type, start_seconds, duration_seconds, end_seconds, source_id, effect_count, effects """ from camtasia.timing import ticks_to_seconds path = Path(output_path) with path.open('w', newline='') as f: writer = csv.writer(f) writer.writerow([ 'track_name', 'track_index', 'clip_id', 'clip_type', 'start_seconds', 'duration_seconds', 'end_seconds', 'source_id', 'effect_count', 'effects', ]) for track in project.timeline.tracks: for clip in track.clips: writer.writerow([ track.name, track.index, clip.id, clip.clip_type, f'{ticks_to_seconds(clip.start):.3f}', f'{ticks_to_seconds(clip.duration):.3f}', f'{clip.end_seconds:.3f}', clip.source_id if clip.source_id is not None else '', clip.effect_count, '; '.join(clip.effect_names) if clip.has_effects else '', ]) return path