> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mira.party/llms.txt
> Use this file to discover all available pages before exploring further.

# Link reposter

> Re-upload social media links so videos actually play in Discord.

TikTok, Instagram and Twitter links embed badly in Discord — a thumbnail if you're lucky, nothing if you're not. The reposter downloads the media and re-uploads it, so it plays inline.

## Turning it on

```javascript theme={null}
!reposter status on
```

Requires **Manage Server**. Alias: `toggle`.

Now any supported link posted in the server gets re-uploaded automatically.

## Supported platforms

|              |            |             |
| ------------ | ---------- | ----------- |
| TikTok       | Instagram  | Twitter / X |
| YouTube      | Reddit     | Snapchat    |
| Facebook     | Tumblr     | Pinterest   |
| Twitch clips | SoundCloud | BiliBili    |
| Streamable   | Medal      | Gofile      |

`!reposter platforms` lists them in Discord. Alias: `list`.

## Controlling where it works

<CodeGroup>
  ```javascript Disable in one channel theme={null}
  !reposter disable #general tiktok
  ```

  ```javascript Disable a platform everywhere theme={null}
  !reposter disable all tiktok
  ```

  ```javascript Re-enable theme={null}
  !reposter enable #general tiktok
  ```

  ```javascript What's disabled theme={null}
  !reposter disable list
  !reposter disable view tiktok
  ```
</CodeGroup>

Channels can also be categories, in which case the setting applies to everything inside.

## Behaviour

<AccordionGroup>
  <Accordion title="Delete the original message" icon="trash">
    ```javascript theme={null}
    !reposter deletion on
    ```

    Removes the original link after reposting, so you get the video instead of the link *and* the video. Aliases: `delete`, `del`.
  </Accordion>

  <Accordion title="Include an embed" icon="square">
    ```javascript theme={null}
    !reposter embeds on
    ```

    Adds caption, author and stats alongside the media. Off means media only, which is cleaner in a fast channel. Aliases: `embed`, `info`.
  </Accordion>

  <Accordion title="Require a prefix" icon="terminal">
    ```javascript theme={null}
    !reposter prefix on
    ```

    Only reposts when the link is prefixed, rather than every link automatically. Good for a channel where people share links to read rather than watch.
  </Accordion>

  <Accordion title="Auto-delete reposts" icon="clock">
    ```javascript theme={null}
    !reposter autodelete #memes 1h
    !reposter autodelete list
    !reposter autodelete reset #memes
    ```

    Removes reposts after a duration. Keeps a fast meme channel from becoming a permanent video archive. Aliases: `cleanup`, `autoclean`, `ad`.
  </Accordion>

  <Accordion title="Restrict to roles" icon="lock">
    ```javascript theme={null}
    !reposter restrict @Member
    !reposter restrict list
    !reposter restrict reset
    ```

    Only listed roles trigger reposts. Toggles. Aliases: `access`, `require`, `allow`.
  </Accordion>
</AccordionGroup>

## One-off downloads

```javascript theme={null}
!repost <url>
```

Downloads a link's media without needing the reposter enabled. Works on any supported platform.

## Presentation

Three toggles shared with [social feeds](/social/feeds), all requiring **Manage Server**:

```javascript theme={null}
!feeds merge on
!feeds minimal on
!feeds relative on
```

| Setting    | Effect                                                                 |
| ---------- | ---------------------------------------------------------------------- |
| `merge`    | Combine a post's audio into its photos, rather than posting separately |
| `minimal`  | Compact notifications with less metadata                               |
| `relative` | Relative timestamps — "2 hours ago" instead of a date                  |

## Things worth knowing

* Mmira will automatically host the content on our own backend to bypass Discord's limit.
* Reposting is rate-limited to a couple of posts per short window, so someone dumping twenty links won't flood the channel.
* Private and deleted content can't be fetched. Neither can anything behind a login the bot doesn't have.
* Age-restricted and geo-blocked content often fails, and there's nothing to configure that fixes it.

## Command reference

| Command                                    | Aliases             | Description               |
| ------------------------------------------ | ------------------- | ------------------------- |
| `reposter status (on/off)`                 | `toggle`            | Enable reposting          |
| `reposter platforms`                       | `list`              | Supported platforms       |
| `reposter enable <channel> <reposter>`     | `on`, `start`       | Enable in a channel       |
| `reposter disable <channel> <reposter>`    | `off`, `stop`       | Disable in a channel      |
| `reposter disable list`                    | `ls`                | What's disabled           |
| `reposter disable view <reposter>`         | `channels`          | Where one is disabled     |
| `reposter deletion (on/off)`               | `delete`, `del`     | Delete the original       |
| `reposter embeds (on/off)`                 | `embed`, `info`     | Include an embed          |
| `reposter prefix (on/off)`                 | —                   | Require a prefix          |
| `reposter autodelete <channel> [duration]` | `cleanup`, `ad`     | Auto-delete reposts       |
| `reposter autodelete list`                 | `ls`                | Channels that clean up    |
| `reposter autodelete reset <channel>`      | `clear`, `off`      | Stop auto-deleting        |
| `reposter restrict <role>`                 | `access`, `require` | Toggle a role restriction |
| `reposter restrict list`                   | `ls`                | Allowed roles             |
| `reposter restrict reset`                  | `clear`, `disable`  | Remove restrictions       |
| `repost <url>`                             | —                   | One-off download          |
| `feeds merge (on/off)`                     | `combine`           | Merge audio into photos   |
| `feeds minimal (on/off)`                   | `compact`           | Compact notifications     |
| `feeds relative (on/off)`                  | `timestamps`        | Relative timestamps       |

Every configuration command requires **Manage Server** or **Manage Channels**.
