E-Lamp Lite API 0.1
E-Lamp Lite is a content-based video search engine that allows users to quickly find videos without any tags. The API provides an interface to search the content of all videos in YFCC100M set (~800 thousand videos). Note that the video user tags are not used in search.

  • Get Example Queries

Responded JSON:

   "answer_summary": "Sorry, I don't understand your question.",
   "question_examples": [
       "Try the following examples",
       "forest hiking",
       "forest hiking in 2010?",
       "forest hiking near San Francisco",
       "ice skating videos around New York City?"
   "user_question": ""

  • Get Request

forest near San Francisco

Responded JSON:

   "answers": [
{ "evidence": "dog: 0.728", "rank": 0, "url": "https://www.flickr.com/photo.gne?id=5411646137", "vid": "5411646137" }, { "evidence": "dog: 0.713", "rank": 1, "url": "https://www.flickr.com/photo.gne?id=5458336704", "vid": "5458336704" }, { "evidence": "dog: 0.597", "rank": 2, "url": "https://www.flickr.com/photo.gne?id=6350322928", "vid": "6350322928" },

   "highlighted_keyword": [
   "question_type": "show_me",
   "user_question": "dog"

The field in the json file is pretty self-explanatory.

  • Post Request

forest near San Francisco

POST Message:

curl -H "Content-type: application/json" \
-X POST http://mmdb.inf.cs.cmu.edu:1120/api -d '{"q":"dog"}'

Alternatively you can use the following python code to send a HTTP POST request.

import json

import urllib2

if __name__ == '__main__':  

 data = {"q": "forest near San Francisco"}

 req = urllib2.Request('http://mmdb.inf.cs.cmu.edu:1120/api')

 req.add_header('Content-Type', 'application/json')

 response = urllib2.urlopen(req, json.dumps(data))

 data = json.load(response)

 print data


  • How to browse retrieved video?
    A: Go to the url in your web browser.
  • How to download the retrieved video?
    A: First find vid in the returned json then download the videos from the download page.
  • Why the search is slow?
    A: It might be the slow Internet speed or our outdated machine. We are releasing an old slower version in [R].
  • Why the search for geolocations is not working?
    A: We used the third-party named entity recognition. For better recognition, capitalize the city, state and country name. For example, use “San Francisco” instead of “san francisco”.
  • Why is the time filter in search not working?
    A: Try use something like “in 2012”, “after August 2010 ”, “before May 2012”, “between 2013 and 2014”
  • How big is the video collection?
    A: All videos in YFCC100M (about 800 thousand).
  • What’s the accuracy and the runtime of the system?
    A: The top 20 accuracy is about 0.7 and the search time is less than 1 second. See details in:
    [1] Lu Jiang, Shoou-I Yu, Deyu Meng, Yi Yang, Teruko Mitamura, Alexander Hauptmann. Fast and Accurate Content-based Semantic Search in 100M Internet Videos. In ACM Multimedia (MM), 2015.
    [2] Lu Jiang, Shoou-I Yu, Deyu Meng, Teruko Mitamura, Alexander Hauptmann. Bridging the Ultimate Semantic Gap: A Semantic Search Engine for Internet Videos. In ACM International Conference on Multimedia Retrieval (ICMR), 2015.
  • How many different things can you search?
    A: More than 4000 concepts. See the homepage.
  • Is it possible to download an executable that can run on our machine?
    A: Yes. Please contact us for details.