# How to Obtain Attribution Information for Media Assets in the Exercises-Dataset Repository

> Learn how to find attribution information for media assets in the exercises-dataset repository. Access credit text directly from the exercises.json file for easy redistribution.

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

---

**You can obtain attribution information for media assets by reading the `attribution` field from any exercise record in [`data/exercises.json`](https://github.com/hasaneyldrm/exercises-dataset/blob/main/data/exercises.json), which is guaranteed to exist by the JSON schema and contains the credit text required for redistribution.**

The `hasaneyldrm/exercises-dataset` repository distributes fitness exercises complete with thumbnail images and animated GIFs sourced from Gym Visual. To obtain attribution information for media assets, developers and data scientists simply query the structured JSON dataset where every record explicitly contains the required credit string.

## Where Attribution Data Is Stored

### Inside the Exercise Records (data/exercises.json)

The primary dataset file [`data/exercises.json`](https://github.com/hasaneyldrm/exercises-dataset/blob/main/data/exercises.json) stores complete attribution data for every media asset directly inside each exercise record. Each entry contains an `attribution` string, such as `"© Gym visual — https://gymvisual.com/"`, ensuring downstream users know exactly how to credit the source when displaying thumbnails or animation GIFs.

### Schema Validation (data/exercises.schema.json)

The JSON schema defined in [`data/exercises.schema.json`](https://github.com/hasaneyldrm/exercises-dataset/blob/main/data/exercises.schema.json) marks the `attribution` field as required, guaranteeing that every exercise in the dataset includes this critical metadata. This schema enforcement prevents incomplete records from entering the dataset.

### Repository Documentation Files

Beyond the structured data, the repository reiterates attribution requirements in human-readable documentation. The [`NOTICE.md`](https://github.com/hasaneyldrm/exercises-dataset/blob/main/NOTICE.md) file explicitly states the media attribution and license terms, while [`README.md`](https://github.com/hasaneyldrm/exercises-dataset/blob/main/README.md) contains sections describing the media license. The `LICENSE` file provides the MIT license for code and dataset structure while referencing the separate media license terms.

## Retrieving Attribution Programmatically

To obtain attribution information for media assets in your applications, parse [`data/exercises.json`](https://github.com/hasaneyldrm/exercises-dataset/blob/main/data/exercises.json) and access the `attribution` field.

Load a single exercise and print its attribution using Python:

```python
import json

with open("data/exercises.json", "r", encoding="utf-8") as f:
    exercises = json.load(f)

# Example: get attribution for the first exercise

first = exercises[0]
print(f"Exercise: {first['name']}")
print(f"Attribution: {first['attribution']}")

```

List distinct attribution strings across the entire dataset:

```python
import json

with open("data/exercises.json", "r", encoding="utf-8") as f:
    exercises = json.load(f)

attributions = {ex["attribution"] for ex in exercises}
print("Unique attributions:", attributions)

```

Retrieve attribution for a specific exercise ID using JavaScript:

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

// Find exercise with ID "0001"
const ex = exercises.find(e => e.id === "0001");
console.log(`Exercise: ${ex.name}`);
console.log(`Attribution: ${ex.attribution}`);

```

Collect all unique attributions in JavaScript:

```javascript
const exercises = require("./data/exercises.json");
const unique = [...new Set(exercises.map(e => e.attribution))];
console.log("Distinct attributions:", unique);

```

## Media File Organization and License Requirements

All media files stored in the `images/` and `videos/` directories ship with the same attribution label defined in the dataset records. When redistributing these assets, you must preserve the attribution text unchanged. The [`NOTICE.md`](https://github.com/hasaneyldrm/exercises-dataset/blob/main/NOTICE.md) file provides the exact legal text required for compliance, ensuring that downstream users display the correct credit (`© Gym visual — https://gymvisual.com/`) alongside any thumbnails or animation GIFs.

## Summary

- **Primary source**: The `attribution` field in [`data/exercises.json`](https://github.com/hasaneyldrm/exercises-dataset/blob/main/data/exercises.json) contains the required credit text for every exercise.
- **Schema guarantee**: [`data/exercises.schema.json`](https://github.com/hasaneyldrm/exercises-dataset/blob/main/data/exercises.schema.json) validates that the `attribution` field is present in every record.
- **Legal documentation**: [`NOTICE.md`](https://github.com/hasaneyldrm/exercises-dataset/blob/main/NOTICE.md) and [`README.md`](https://github.com/hasaneyldrm/exercises-dataset/blob/main/README.md) provide human-readable attribution statements and license terms.
- **Programmatic access**: Use standard JSON parsing in Python or JavaScript to extract attribution strings by reading the `attribution` key.
- **Compliance requirement**: You must retain the original attribution text when redistributing media files from the `images/` or `videos/` directories.

## Frequently Asked Questions

### Where is the attribution field located in the dataset?

The attribution field is located within each exercise object in [`data/exercises.json`](https://github.com/hasaneyldrm/exercises-dataset/blob/main/data/exercises.json). Every exercise record includes this field at the top level of the JSON object, containing a string like `"© Gym visual — https://gymvisual.com/"`.

### Is the attribution field required for all exercises?

Yes, the attribution field is mandatory. The JSON schema in [`data/exercises.schema.json`](https://github.com/hasaneyldrm/exercises-dataset/blob/main/data/exercises.schema.json) lists `attribution` as a required field, ensuring that every exercise entry in the dataset includes proper credit information for its associated media assets.

### Can I redistribute the media assets without attribution?

No, you cannot redistribute the media assets without maintaining the attribution. The [`NOTICE.md`](https://github.com/hasaneyldrm/exercises-dataset/blob/main/NOTICE.md) file explicitly states the license terms requiring the attribution text to remain intact when displaying or distributing the thumbnail images and animation GIFs from the `images/` and `videos/` directories.

### What is the fastest way to check attribution for all media in the dataset?

The fastest method is to aggregate distinct values from the `attribution` field across all exercise records. Currently, the dataset contains only one unique attribution value (`© Gym visual — https://gymvisual.com/`), which you can verify using a Python set comprehension or JavaScript `Set` operation as shown in the code examples above.