Skip to content


Folders and files

Last commit message
Last commit date

Latest commit



26 Commits

Repository files navigation

OPRA Dataset: Online Product Reviews for Affordances

Kuan Fang*, Te-Lin Wu*, Daniel Yang, Silvio Savarese and Joseph J. Lim

For questions regarding OPRA Dataset please contact Kuan Fang and Te-Lin Wu.


The OPRA Dataset was introduced in our Demo2Vec paper for reasoning object affordances from online demonstration videos. It contains 11,505 demonstration clips and 2,512 object images scraped from 6 popular YouTube product review channels along with the corresponding affordance annotations. More details can be found on our website.


author = {Fang, Kuan and Wu, Te-Lin and Yang, Daniel and Savarese, Silvio and Lim, Joseph J.},
title = {Demo2Vec: Reasoning Object Affordances From Online Videos},
booktitle = {The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2018}


Install youtube-dl:

sudo -H pip install --upgrade youtube-dl

Install ffmpeg:

sudo add-apt-repository ppa:mc3man/trusty-media  
sudo apt-get update  
sudo apt-get install ffmpeg  

To visualize the dataset using Jupyter notebooks, these packages need to be installed: NumPy, OpenCV, Matplotlib, Jupyter.


One can follow the step-by-step instructions below or just run the bash script bash ./

Download and unzip data/ (around 500MB). The folder contains playlists of YouTube product review videos (playlists/), product images (images/), and human annotations of the video segmentation and interactiion regions (annotations/).


Download the product review videos from YouTube (around 51GB). (Note that some of the url may be no longer valid when you run the script, because they have been deleted from the playlist or due to other technical issues.)

python --playlist data/playlists --output data/raw_videos/

Segment the videos according to the annotations (around 13GB). After segmentation, raw videos will be no longer needed and can be removed.

python --annotations data/annotations/train.txt --raw data/raw_videos/ --output data/clips
python --annotations data/annotations/test.txt --raw data/raw_videos/ --output data/clips


We provide a simple demo for loading and visualizing the dataset. Please run the Jupyter notebook:

jupyter notebook

# Or run remotely. 
jupyter notebook --no-browser --port=8888

Open ./notebooks/visualize_annotations.ipynb in the browser (Chrome and FireFox are recommended) at this link. The notebook provide a basic demo of loading the dataset and visualizing the video clip, the target image, and the annotation.