TornadoLabs/activitynet
ActivityNet v1.3 15,941 videos (391.3 GB) with 1,550 subtitle files, downloaded at source quality and re-hosted for direct use — no more dead YouTube links, no more flaky downloader scripts. Coverage: 15,941 of the 19,994 source video IDs (79.7%). 4,053 source videos were unavailable at fetch time (private, removed, members-only or geo-blocked) and are excluded. The dataset is refreshed as more videos are delivered. What's inside metadata.jsonl — one row per… See the full description on the dataset page: https://huggingface.co/datasets/TornadoLabs/activitynet.
ActivityNet v1.3

15,941 videos (391.3 GB) with 1,550 subtitle files, downloaded at source quality and re-hosted for direct use — no more dead YouTube links, no more flaky downloader scripts.
Coverage: 15,941 of the 19,994 source video IDs (79.7%). 4,053 source videos were unavailable at fetch time (private, removed, members-only or geo-blocked) and are excluded. The dataset is refreshed as more videos are delivered.
What's inside
- `metadata.jsonl` — one row per video:
video_id,video_url(direct HTTPS download, CDN-backed),subtitle_url,youtube_url,size_bytes - The 15,941 MP4s (391.3 GB) and 1,550 subtitle files are hosted on Hugging Face storage and served via the
video_urlcolumn - `captions.parquet` — 23,064 academic annotations (source:
annotations.csv)
Quick start
from datasets import load_dataset
# videos (default config): one row per video with its direct download URL
ds = load_dataset("TornadoLabs/activitynet", "videos", split="train")
print(ds[0])
# download one video
import requests
r = requests.get(ds[0]["video_url"])
open(f"{ds[0]['video_id']}.mp4", "wb").write(r.content)
# academic annotations
ann = load_dataset("TornadoLabs/activitynet", "annotations", split="train")How this dataset was built
Every video was fetched through the Tornado API bulk pipeline and delivered straight into Hugging Face storage via its S3-compatible gateway — the exact workflow documented here.
Of the original ID list, only videos still publicly available on YouTube are included (dead/private videos are listed upstream and excluded here).
Provenance & citation
- Original dataset: http://activity-net.org/
- Paper: Caba Heilbron et al., CVPR 2015 — ActivityNet: A Large-Scale Video Benchmark for Human Activity Understanding
- 19,994 vidéos, 200 classes d'activités, annotations temporelles segment-niveau.
The video files remain the property of their respective YouTube uploaders. The annotations belong to the original dataset authors — cite their paper if you use them. This re-hosting is provided for reproducible research; if you are a rights holder and want content removed, open a discussion on this repo.
Build your own video dataset
Need a custom corpus (different IDs, other platforms, higher volume)? [Tornado API](https://tornadoapi.io?ref=hf-activitynet-cta) downloads YouTube at scale — bulk endpoints, S3/R2/HF delivery, subtitles and metadata included.
