# Understanding Creative Commons License and Data Attribution Requirements for the Bambu Lab Store Filament Tracker

> Learn about the Creative Commons license and data attribution rules for the BBL Tracker public database. Understand your obligations for using and sharing this open data.

- Repository: [Nelson Chen/bbl-tracker-public-db](https://github.com/nelsonjchen/bbl-tracker-public-db)
- Tags: best-practices
- Published: 2026-03-08

---

**The Bambu Lab Store Filament Tracker database is published under the Open Database License (ODbL), which requires attribution and share-alike redistribution similar to Creative Commons CC-BY-SA, mandating that you credit the original source and license any derivative databases under compatible terms.**

The nelsonjchen/bbl-tracker-public-db repository tracks 3D printer filament availability from the Bambu Lab Store, distributing hourly Parquet files via Cloudflare R2. While the question references **Creative Commons license and data attribution requirements**, the repository actually implements the **Open Database License (ODbL)**—a specialized "share-alike" license designed specifically for databases that carries obligations comparable to CC-BY-SA.

## ODbL License Fundamentals

The repository's `LICENSE` file contains the full Open Database License text, establishing this as a public domain dedication for the database rights with specific attribution conditions. According to the license header in `LICENSE` lines 1-4 as implemented in nelsonjchen/bbl-tracker-public-db, the database is made available under ODbL terms that protect the openness of the data while requiring downstream users to maintain the same freedoms.

### Attribution Requirements

When you publicly use this database or create derived works, you must fulfill specific **data attribution requirements** mandated by ODbL sections referenced in `LICENSE` lines 254-258:

- **Preserve copyright notices**: Keep all copyright or Database Right notices intact when redistributing the data or creating derivative databases.
- **Provide attribution notice**: Include a visible notice stating "Contains information from **Bambu Lab Store Filament Tracker**, available under the Open Database License (ODbL)" as specified in `LICENSE` lines 271-276.
- **Attribute in Produced Works**: For "Produced Works" such as reports, visualizations, or machine learning models built from this data, you must include the attribution notice within the work itself per `LICENSE` lines 263-266.

### Share-Alike Obligations

Any derivative database you publish must be licensed under ODbL or a compatible license. As stated in `LICENSE` lines 283-287 according to the nelsonjchen/bbl-tracker-public-db source code, you cannot apply additional restrictions or proprietary licenses to modified versions of this dataset.

## Repository Structure and Data Access Points

The repository separates code from data: the GitHub repository contains fetch/query utilities while the actual dataset resides in a **Cloudflare R2 bucket** at `https://db-public.bbltracker.com`.

### Key Implementation Files

- **[`README.md`](https://github.com/nelsonjchen/bbl-tracker-public-db/blob/main/README.md)** (lines 12-18): Documents the dataset update cadence and explains why ODbL applies to the streamed Parquet files.
- **[`script.py`](https://github.com/nelsonjchen/bbl-tracker-public-db/blob/main/script.py)**: Provides a minimal example using `uv` to install DuckDB and Pandas, then executes a sample query against the remote data (referenced in [`README.md`](https://github.com/nelsonjchen/bbl-tracker-public-db/blob/main/README.md) lines 24-35).
- **[`reconstruct_db.py`](https://github.com/nelsonjchen/bbl-tracker-public-db/blob/main/reconstruct_db.py)**: Merges hourly Parquet streams into a single DuckDB file for bulk local analysis (detailed in [`README.md`](https://github.com/nelsonjchen/bbl-tracker-public-db/blob/main/README.md) lines 49-55).

### Remote Data Location

Rather than storing gigabytes of Parquet files in Git, the repository streams data from:

- Base URL: `https://db-public.bbltracker.com`
- Hourly files: `https://db-public.bbltracker.com/YYYY-MM-DD-HH00.parquet`
- Index: `https://db-public.bbltracker.com/manifest.json`

## Implementing Attribution in Code

Because the data streams from external storage rather than shipping with the repository, **license obligations** are enforced through documentation. You must manually embed attribution in your downstream applications.

### Querying Data with Attribution Metadata

When querying the public Parquet files directly via DuckDB, include the attribution string in your script outputs:

```python
import duckdb

# Build URLs for specific hours (example: 2026-02-16 at 00:00, 06:00, 12:00, 18:00)

base_url = "https://db-public.bbltracker.com"
urls = [
    f"{base_url}/2026-02-16-{hour:02d}00.parquet"
    for hour in (0, 6, 12, 18)
]

# Query remote Parquet files directly

df = duckdb.read_parquet(urls).df()

# Required attribution for downstream use

ATTRIBUTION = (
    "Data sourced from Bambu Lab Store Filament Tracker ("
    "https://github.com/nelsonjchen/bbl-tracker-public-db) "
    "under the Open Database License (ODbL)."
)

print(f"Retrieved {len(df)} records")
print(f"\nAttribution: {ATTRIBUTION}")

```

### Preserving License Files in Local Rebuilds

When using [`reconstruct_db.py`](https://github.com/nelsonjchen/bbl-tracker-public-db/blob/main/reconstruct_db.py) to create a local DuckDB database, copy the `LICENSE` file alongside your generated database to maintain compliance:

```python
import subprocess
import shutil
from pathlib import Path

# Generate local database from Parquet stream

subprocess.run(["uv", "run", "reconstruct_db.py"], check=True)

# Preserve ODbL license with the derivative database

shutil.copy(
    Path(__file__).parent / "LICENSE",
    Path(__file__).parent / "bambu_stock.duckdb.LICENSE"
)

print("Local database created with ODbL attribution preserved.")

```

## Compliance Best Practices

Follow these steps to ensure adherence to the **Creative Commons-like** ODbL obligations:

1. **Embed citation strings** in all scripts, notebooks, and reports that consume this data, citing the GitHub repository and license type.
2. **Ship license files** when redistributing Parquet files or derived databases; bundle the `LICENSE` text with any data exports.
3. **License derivatives correctly** by applying ODbL headers to any new DuckDB files or database exports created from this source material.

## Summary

- **The Bambu Lab Store Filament Tracker uses ODbL**, not Creative Commons, though both require attribution and share-alike redistribution.
- **Attribution notices must be preserved** in all public uses and Produced Works, citing the original source and license as specified in `LICENSE` lines 271-276.
- **Derivative databases must use ODbL** or compatible licenses; you cannot impose additional restrictions per `LICENSE` lines 549-556.
- **Data resides remotely** at `db-public.bbltracker.com` while the repository provides [`script.py`](https://github.com/nelsonjchen/bbl-tracker-public-db/blob/main/script.py) and [`reconstruct_db.py`](https://github.com/nelsonjchen/bbl-tracker-public-db/blob/main/reconstruct_db.py) for access.
- **Code implementations** must manually include attribution strings and preserve `LICENSE` files when creating local copies.

## Frequently Asked Questions

### Is the Bambu Lab Store Filament Tracker under Creative Commons or ODbL?

The repository uses the **Open Database License (ODbL)**, not a Creative Commons license. While ODbL shares similar attribution and share-alike principles with CC-BY-SA, it is specifically designed for database rights and contains provisions regarding "Database Rights" distinct from copyright. The `LICENSE` file in the repository root contains the full ODbL text.

### What exact attribution text is required when using this data?

According to `LICENSE` lines 271-276, you should include a notice such as: *"Contains information from Bambu Lab Store Filament Tracker, available under the Open Database License (ODbL)."* You must also preserve any copyright or Database Right notices found in the source files.

### Do I need to license my analysis under ODbL if I create charts or reports?

For **Produced Works** like charts, reports, or models built using this data, you must include the attribution notice within the work, but the work itself does not automatically become ODbL-licensed unless it constitutes a derivative database. However, if you create a new database combining or modifying this data, that derivative database must be licensed under ODbL per `LICENSE` lines 283-287.

### How do I query the data without cloning the entire repository?

Use the public Cloudflare R2 endpoint at `https://db-public.bbltracker.com` with the provided [`manifest.json`](https://github.com/nelsonjchen/bbl-tracker-public-db/blob/main/manifest.json) to discover available Parquet files. The [`script.py`](https://github.com/nelsonjchen/bbl-tracker-public-db/blob/main/script.py) example demonstrates using DuckDB to query these remote files directly without downloading the repository code, though you must still comply with attribution requirements when using the streamed data.