user: Explain MovieClip(ID) in complete detail according to the official Blender documentation.

assistant: # MovieClip(ID)

base classes — [`bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct"), [`ID`](bpy.types.ID.html#bpy.types.ID "bpy.types.ID")

*class* bpy.types.MovieClip(*ID*)
:   MovieClip data-block referencing an external movie file

    animation_data
    :   Animation data for this data-block

        Type:
        :   [`AnimData`](bpy.types.AnimData.html#bpy.types.AnimData "bpy.types.AnimData"), (readonly)

    annotation
    :   Annotation data for this movie clip

        Type:
        :   [`Annotation`](bpy.types.Annotation.html#bpy.types.Annotation "bpy.types.Annotation")

    colorspace_settings
    :   Input color space settings

        Type:
        :   [`ColorManagedInputColorspaceSettings`](bpy.types.ColorManagedInputColorspaceSettings.html#bpy.types.ColorManagedInputColorspaceSettings "bpy.types.ColorManagedInputColorspaceSettings"), (readonly)

    display_aspect
    :   Display Aspect for this clip, does not affect rendering

        Type:
        :   [`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 2 items in [0.1, inf], default (1.0, 1.0)

    filepath
    :   Filename of the movie or sequence file

        Type:
        :   string, default “”, (never None, blend relative `//` prefix supported)

    fps
    :   Detected frame rate of the movie clip in frames per second

        Type:
        :   float in [-inf, inf], default 0.0, (readonly)

    frame_duration
    :   Detected duration of movie clip in frames

        Type:
        :   int in [-inf, inf], default 0, (readonly)

    frame_offset
    :   Offset of footage first frame relative to its file name (affects only how footage is loading, does not change data associated with a clip)

        Type:
        :   int in [-inf, inf], default 0

    frame_start
    :   Global scene frame number at which this movie starts playing (affects all data associated with a clip)

        Type:
        :   int in [-inf, inf], default 1

    proxy
    :   Type:
        :   [`MovieClipProxy`](bpy.types.MovieClipProxy.html#bpy.types.MovieClipProxy "bpy.types.MovieClipProxy"), (readonly)

    size
    :   Width and height in pixels, zero when image data cannot be loaded

        Type:
        :   int array of 2 items in [-inf, inf], default (0, 0), (readonly)

    source
    :   Where the clip comes from

        - `SEQUENCE`
          Image Sequence – Multiple image files, as a sequence.
        - `MOVIE`
          Movie File – Movie file.

        Type:
        :   enum in [`'SEQUENCE'`, `'MOVIE'`], default `'SEQUENCE'`, (readonly)

    tracking
    :   Type:
        :   [`MovieTracking`](bpy.types.MovieTracking.html#bpy.types.MovieTracking "bpy.types.MovieTracking"), (readonly)

    use_proxy
    :   Use a preview proxy and/or timecode index for this clip

        Type:
        :   boolean, default False

    use_proxy_custom_directory
    :   Create proxy images in a custom directory (default is movie location)

        Type:
        :   boolean, default False

    metadata()
    :   Retrieve metadata of the movie file

        Returns:
        :   Dict-like object containing the metadata

        Return type:
        :   [`IDPropertyWrapPtr`](bpy.types.IDPropertyWrapPtr.html#bpy.types.IDPropertyWrapPtr "bpy.types.IDPropertyWrapPtr")

    *classmethod* bl_rna_get_subclass(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The RNA type or default when not found.

        Return type:
        :   [`bpy.types.Struct`](bpy.types.Struct.html#bpy.types.Struct "bpy.types.Struct") subclass

    *classmethod* bl_rna_get_subclass_py(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The class or default when not found.

        Return type:
        :   type