Khan Academy Web API Documentation

The Khan Academy open source developers exposed the list of playlists, and videos per playlist as a JSON service. The following documentation describes the endpoints.

Playlists

http://www.khanacademy.org/api/playlists

Returns an array of objects which contain information about a playlist
[	
	{ 
		"api_url": "http:\/\/www.khanacademy.org\/api\/playlistvideos?playlist=Biology", 
		"youtube_url": "http:\/\/gdata.youtube.com\/feeds\/api\/playlists\/7A9646BC5110CF64", 
		"title": "Biology", 
		"description": "Covers topics seen in a first year college or high school biology course.", 
		"youtube_id": "7A9646BC5110CF64"
	}
]

Playlist Videos

http://www.khanacademy.org/api/playlistvideos?playlist=Algebra

Returns an array of videos.
 [ 
        { 
            "description": "Introduction to basic algebraic equations of the form Ax=B", 
            "title": "Simple Equations", 
            "ka_url": "http:\/\/www.khanacademy.org\/video\/simple-equations?playlist=Algebra",
            "url": "http:\/\/www.youtube.com\/watch?v=9Ek61w1LxSc&feature=youtube_gdata_player", 
            "youtube_id": "9Ek61w1LxSc", 
            "keywords": "algebra, introduction", 
            "readable_id": "simple-equations" 
        }
]

The following data contracts allow the use of the DataContractJsonSerializer to serialize the json into an object graph when accessing the API via C#.
            [DataContract]
            public class JsonCategory
            {
                [DataMember(Name = "api_url")]
                public string Url { get; set; }
                [DataMember(Name = "youtube_url")]
                public string YoutubeUrl { get; set; }
                [DataMember(Name = "title")]
                public string Title { get; set; }
                [DataMember(Name = "description")]
                public string Description { get; set; }
                [DataMember(Name = "youtube_id")]
                public string YoutubeId { get; set; }
            }
            
            [DataContract]
            public class JsonVideo
            {
                [DataMember(Name = "ka_url")]
                public string Url { get; set; }
                [DataMember(Name = "url")]
                public string YoutubeUrl { get; set; }
                [DataMember(Name = "title")]
                public string Title { get; set; }
                [DataMember(Name = "description")]
                public string Description { get; set; }
                [DataMember(Name="youtube_id")]
                public string YouTubeId { get; set; }
                [DataMember(Name="readable_id")]
                public string ReadableId { get; set; }
                [DataMember(Name="keywords")]
                public string Keywords { get; set; }

            }
        }

Last edited Dec 13, 2010 at 11:32 AM by joelmartinez, version 7

Comments

No comments yet.