# ExternalReference

> Media at a URL.

Symbols in this group are spelled `otio_external_reference_…`. An SDK drops that prefix.

## `new`

`otio_external_reference_new` · constructor

Creates a media reference pointing at a URL.

```c
OtioStatus otio_external_reference_new(
    OtioDocument *target,
    const char *name,
    const char *target_url,
    OtioNode *out_node,
    OtioBuffer *out_error);
```

| Parameter | Type | Role |
| --- | --- | --- |
| `target` | `document` | document mut |
| `name` (optional) | `text` | input |
| `target_url` (optional) | `text` | input |
| `out_node` | `node` | output |
| `out_error` | `text` | error |

## `set_target_url`

`otio_external_reference_set_target_url` · setter

Sets where an external reference's media lives.

```c
OtioStatus otio_external_reference_set_target_url(
    OtioDocument *target,
    OtioNode node_handle,
    const char *url,
    OtioBuffer *out_error);
```

| Parameter | Type | Role |
| --- | --- | --- |
| `target` | `document` | document mut |
| `node_handle` | `node` | receiver |
| `url` | `text` | input |
| `out_error` | `text` | error |

## `target_url`

`otio_external_reference_target_url` · getter

Returns where an external reference's media lives.

```c
OtioStatus otio_external_reference_target_url(
    const OtioDocument *source,
    OtioNode node_handle,
    OtioBuffer *out_url,
    OtioBuffer *out_error);
```

| Parameter | Type | Role |
| --- | --- | --- |
| `source` (optional) | `document` | document in |
| `node_handle` | `node` | receiver |
| `out_url` | `text` | output |
| `out_error` | `text` | error |

---

Page: https://otio-rust-docs.vercel.app/reference/external-reference/
