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

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.

Component Overview

  • 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 — 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 — 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 includes an attribution field containing the exact string required for reuse:

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

When displaying any image or GIF, you must render this attribution alongside the media. The 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.

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 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

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

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, your database schema should include the attribution field:

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.
  • Always validate data against 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.

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 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 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.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →