# Gym Visual Media Attribution and Licensing for Commercial Use in the Exercises Dataset

> Understand Gym visual media attribution and licensing for commercial use of the Exercises Dataset. Learn how to license high-resolution assets for your projects.

- Repository: [Hasan Emir Yıldırım/exercises-dataset](https://github.com/hasaneyldrm/exercises-dataset)
- Tags: licensing-guide
- Published: 2026-07-28

---

**The Exercises Dataset bundles 1,324 fitness media assets under a dual-license structure: the JSON data and code are MIT-licensed, but the 180×180 thumbnails and GIFs remain © Gym visual and require attribution and separate commercial licensing for high-resolution use.**

The `hasaneyldrm/exercises-dataset` repository provides a complete multilingual fitness catalog with over one thousand visual assets. While the structured exercise data is open source, understanding Gym Visual media attribution and licensing for commercial use is critical before deploying these assets in production applications.

## Repository Structure and Licensing Architecture

The dataset separates code/data from visual assets through distinct licensing terms defined in `LICENSE` and [`NOTICE.md`](https://github.com/hasaneyldrm/exercises-dataset/blob/main/NOTICE.md).

### Component Overview

- **[`data/exercises.json`](https://github.com/hasaneyldrm/exercises-dataset/blob/main/data/exercises.json)** — Contains 1,324 exercise records with metadata, multilingual instructions, and media paths. Each record references assets via the `image` and `gif_url` fields.
- **[`data/exercises.schema.json`](https://github.com/hasaneyldrm/exercises-dataset/blob/main/data/exercises.schema.json)** — JSON Schema (Draft 2020-12) validating the structure of exercise records.
- **`images/`** — Directory containing 1,324 thumbnail files (180×180 px) named `{{id}}-{{media_id}}.jpg`.
- **`videos/`** — Directory containing corresponding GIF animations (180×180 px) named `{{id}}-{{media_id}}.gif`.
- **[`NOTICE.md`](https://github.com/hasaneyldrm/exercises-dataset/blob/main/NOTICE.md)** — Outlines the media attribution requirement and links to Gym visual’s commercial terms.
- **`LICENSE`** — Provides MIT license for code and data, plus a "media exception" clause for the visual assets.

## Attribution Requirements

Every exercise object in [`data/exercises.json`](https://github.com/hasaneyldrm/exercises-dataset/blob/main/data/exercises.json) includes an `attribution` field containing the exact string required for reuse:

```json
"attribution": "© Gym visual — https://gymvisual.com/"

```

When displaying any image or GIF, you must render this attribution alongside the media. The [`NOTICE.md`](https://github.com/hasaneyldrm/exercises-dataset/blob/main/NOTICE.md) file reproduces this string to ensure a single source of truth across implementations.

## Commercial Use Terms and Limitations

Gym visual permits redistribution of the low-resolution assets **with attribution**, but commercial applications face specific constraints according to the `LICENSE` media exception clause.

**Permitted uses:**
- Serving the 180×180 assets in commercial fitness applications with proper attribution.
- Redistributing the MIT-licensed JSON data and code without restriction.

**Prohibited without separate agreement:**
- Using higher-resolution versions of the media.
- Removing or altering the attribution banner.
- Claiming ownership of the visual assets.

To use higher-resolution assets or remove attribution requirements, you must obtain a separate commercial license from Gym visual via the link provided in [`NOTICE.md`](https://github.com/hasaneyldrm/exercises-dataset/blob/main/NOTICE.md).

## Implementation Best Practices

Follow these steps to remain compliant with both the MIT license for code and the media-exception license for visuals:

1. **Serve assets correctly** — Host the `images/` and `videos/` directories as public static files alongside your application.
2. **Render attribution** — Display the `attribution` field value (e.g., below each GIF or in a media footer).
3. **Validate data** — Use [`data/exercises.schema.json`](https://github.com/hasaneyldrm/exercises-dataset/blob/main/data/exercises.schema.json) to validate incoming exercise records before processing.
4. **Monitor resolution** — Ensure you only distribute the 180×180 assets provided; do not upscale or modify the attribution.

## Accessing Media and Attribution in Code

### Python — Load Dataset and Display Attribution

```python
import json
import pathlib

# Load the full dataset from data/exercises.json

data_path = pathlib.Path("data/exercises.json")
with data_path.open(encoding="utf-8") as f:
    exercises = json.load(f)

# Filter for specific exercises (example: barbell chest)

barbell_chest = [
    ex for ex in exercises
    if ex["equipment"] == "barbell" and ex["category"] == "chest"
]

# Display required attribution for the first result

first = barbell_chest[0]
print(f"Exercise: {first['name']}")
print(f"Image: {first['image']}")        # e.g., images/0001-2gPfomN.jpg

print(f"GIF: {first['gif_url']}")        # e.g., videos/0001-2gPfomN.gif

print(f"Attribution: {first['attribution']}")

```

### JavaScript (Node.js) — Access Media URLs

```javascript
const exercises = require("./data/exercises.json");

// Access a random exercise
const ex = exercises[Math.floor(Math.random() * exercises.length)];

console.log(`Exercise: ${ex.name}`);
console.log(`Thumbnail: ${ex.image}`);
console.log(`Animation: ${ex.gif_url}`);
console.log(`Required Attribution: ${ex.attribution}`);

```

### SQL — Database Schema for Bulk Import

When using the setup wizard from [`setup.html`](https://github.com/hasaneyldrm/exercises-dataset/blob/main/setup.html), your database schema should include the attribution field:

```sql
CREATE TABLE exercises (
    id TEXT PRIMARY KEY,
    name TEXT,
    category TEXT,
    body_part TEXT,
    equipment TEXT,
    instructions JSONB,
    muscle_group TEXT,
    secondary_muscles TEXT[],
    target TEXT,
    media_id TEXT,
    image TEXT,
    gif_url TEXT,
    attribution TEXT NOT NULL,  -- Critical for compliance
    created_at TIMESTAMP WITH TIME ZONE
);

```

## Summary

- The **Exercises Dataset** (`hasaneyldrm/exercises-dataset`) combines MIT-licensed data with © Gym visual media assets.
- All 1,324 visual files in `images/` and `videos/` require attribution using the exact string from the `attribution` field.
- Commercial use is permitted only for the provided 180×180 resolution assets with proper attribution displayed.
- Higher-resolution use or attribution removal requires a separate commercial license from Gym visual linked in [`NOTICE.md`](https://github.com/hasaneyldrm/exercises-dataset/blob/main/NOTICE.md).
- Always validate data against [`data/exercises.schema.json`](https://github.com/hasaneyldrm/exercises-dataset/blob/main/data/exercises.schema.json) and preserve attribution in database schemas.

## Frequently Asked Questions

### Can I use the Gym visual images in a paid fitness app?

Yes, you can use the 180×180 thumbnails and GIFs in commercial applications provided you display the attribution exactly as specified in each record's `attribution` field. If you need higher resolution or wish to remove the attribution, you must contact Gym visual for a separate commercial license as outlined in [`NOTICE.md`](https://github.com/hasaneyldrm/exercises-dataset/blob/main/NOTICE.md).

### What happens if I remove the attribution string?

Removing or altering the attribution violates the media-exception clause in the `LICENSE` file and Gym visual's Terms & Conditions. This constitutes copyright infringement, as the visual assets remain © Gym visual regardless of the MIT license covering the JSON data structure.

### Is the entire repository MIT licensed?

No. While the code, JSON data structure, and [`index.html`](https://github.com/hasaneyldrm/exercises-dataset/blob/main/index.html) browser are MIT licensed, the media assets in `images/` and `videos/` are explicitly excluded under a media-exception clause. These files remain proprietary content owned by Gym visual and are distributed under separate terms requiring attribution.

### How do I import the data into PostgreSQL while preserving attribution?

Use the setup wizard in [`setup.html`](https://github.com/hasaneyldrm/exercises-dataset/blob/main/setup.html) to generate SQL INSERT statements, or create a table schema that includes the `attribution TEXT` column as shown in the SQL example above. This ensures your database stores the required attribution strings alongside media paths for easy rendering in your application frontend.