Skip to content
Back to skills

2251 Media Ae62581f

ASecurity

Display images, audio, video, PDFs, and downloadable content.

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 11, 2026
documentationpythongoapi

Works with

  • api

Security analysis

A100/100

Scanned October 11, 2026

npx -y skills add tools-only/X-Skills --skill 2251-media_ae62581f --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 2251 Media Ae62581f?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 2251 Media Ae62581f
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-2251-media-ae62581f/badge)](https://www.skillsdirectory.com/skills/tools-only-2251-media-ae62581f)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
# Media API Reference

Display images, audio, video, PDFs, and downloadable content.

## Images

### mo.image

Display images from various sources.

```python
import marimo as mo

# From URL
mo.image(src="https://example.com/image.png")

# From local file
mo.image(src="./images/photo.jpg")

# From bytes
with open("image.png", "rb") as f:
    mo.image(src=f.read())

# With options
mo.image(
    src="image.png",
    alt="Description for accessibility",
    width=400,
    height=300,
    rounded=True
)

# Data URL
mo.image(src="data:image/png;base64,...")
```

### mo.image_compare

Compare two images side by side with a slider.

```python
mo.image_compare(
    left="before.png",
    right="after.png"
)
```

## Audio

### mo.audio

Play audio files.

```python
# From URL
mo.audio(src="https://example.com/audio.mp3")

# From local file
mo.audio(src="./audio/recording.wav")

# From bytes
mo.audio(src=audio_bytes)

# With options
mo.audio(
    src="audio.mp3",
    autoplay=False,
    controls=True,
    loop=False
)
```

## Video

### mo.video

Play video files.

```python
# From URL
mo.video(src="https://example.com/video.mp4")

# From local file
mo.video(src="./videos/demo.mp4")

# With options
mo.video(
    src="video.mp4",
    width=640,
    height=360,
    autoplay=False,
    controls=True,
    loop=False,
    muted=False
)
```

## PDF

### mo.pdf

Display PDF documents.

```python
# From URL
mo.pdf(src="https://example.com/document.pdf")

# From local file
mo.pdf(src="./docs/report.pdf")

# With options
mo.pdf(
    src="document.pdf",
    width="100%",
    height="600px"
)
```

## Downloads

### mo.download

Create downloadable content.

```python
# From string
mo.download(
    data="Hello, World!",
    filename="greeting.txt"
)

# From bytes
mo.download(
    data=csv_bytes,
    filename="data.csv",
    mimetype="text/csv"
)

# From file
with open("report.pdf", "rb") as f:
    mo.download(data=f.read(), filename="report.pdf")

# With label
mo.download(
    data=json.dumps(data),
    filename="export.json",
    label="Download JSON"
)

# DataFrame to CSV
mo.download(
    data=df.to_csv(index=False),
    filename="data.csv",
    mimetype="text/csv"
)
```

## Plain Text

### mo.plain_text

Display text preserving whitespace and formatting.

```python
mo.plain_text("Preformatted text\n  with indentation")

# Useful for:
# - Log output
# - Code without syntax highlighting
# - ASCII art
# - Fixed-width content
```

## Static Files

For images and media in markdown, place files in a `public/` directory:

```
notebook.py
public/
  logo.png
  diagram.svg
```

Reference in markdown:

```python
mo.md("""
# My Notebook

![Logo](public/logo.png)

<img src="public/diagram.svg" width="400">
""")
```

## Working with Matplotlib

Convert matplotlib figures to displayable images:

```python
import matplotlib.pyplot as plt
import io

fig, ax = plt.subplots()
ax.plot([1, 2, 3], [1, 4, 9])

# Save to bytes
buf = io.BytesIO()
fig.savefig(buf, format="png")
buf.seek(0)

mo.image(src=buf.read())
plt.close(fig)
```

Or use marimo's built-in support:

```python
# Just return the figure - marimo handles display
fig, ax = plt.subplots()
ax.plot([1, 2, 3], [1, 4, 9])
fig  # Display automatically
```

## Working with PIL/Pillow

```python
from PIL import Image
import io

# Create or load image
img = Image.open("photo.jpg")

# Process image
img = img.resize((400, 300))

# Convert to bytes for display
buf = io.BytesIO()
img.save(buf, format="PNG")
buf.seek(0)

mo.image(src=buf.read())
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…