ChinesePod API Project Requests

by Hank Horkoff on March 22, 2010

No Gravatar

The purpose of this post is to solicit feedback from the developers in the ChinesePod community before we finalize the project requirements document for the ChinesePod API project.

Project Objective

In line with our vision of “Learning on Your Terms”, we have always aspired to be ‘channel-agnostic’ as we help connect students with their learning materials, teachers and fellow students. Originally, these channels were the core website (http://www.chinesepod.com) and iTunes. Then in 2009, we added iPhone and Android applications.  With the proliferation of different platforms (Blackberry, Windows, Facebook, etc.) it makes sense for us to open up key ChinesePod services to the community so that they can help us support all these new platforms and make some of our existing apps even better!

Use Cases

Going forward, we feel that whatever can be done with our iPhone or Android applications should be available in the API. In terms of requests for the API, it would be helpful to understand the specific use cases developers have rather than just feature requests (please let us know in the comments of this post).

ChinesePod currently cooperates with the good people at Skritter and AISpeech to provide different tools to help people study Chinese. AISpeech is currently running a demo on ChinesePod (http://chinesepod.com/tools/addons/tone), but would like to allow ChinesePod subscribers to be able to import their ChinesePod vocabulary lists directly into AISpeech. In this case, they have requested that our API support basic OAuth account integration and the ability to both read and write to user vocabulary lists. Developer requests in a similar format as above would better help us make sure that the future API fits your specific needs.

Developer Support

To better support developers going forward we are currently planning:

  • a wiki to store API documentation (we are looking at http://apiwiki.twitter.com for inspiration here)
  • a Google Group for developer-specific discussion
  • a directory of third-party tools on ChinesePod.com to help introduce the apps to ChinesePod users

This is a new type of initiative for us here so if there are any suggestions on how to run it better please let me know.

Thanks,

Hank.

{ 13 comments… read them below or add one }

Matthias March 23, 2010 at 7:14 pm

Dear Hank,

I guess, after reading all the webknowledge about API’s I guess, I could not contribute anything about the how.

However, content-wise I propose, CPod enables more than just the functions, the Apps offer so far.
E.g.: app has “add Vocab”, API should offer also edit vocab, delete vocab.
the following functions might be handy as well.

Create Lesson SET/TAG
Add to lesson SET/TAG
Remove from lesson SET/TAG
Get/SetPercentageLearned(Vocab,What) with What={pinyin,english,writing,tone}
Get/SetLastReviewed(Vocab)
Get/SetReviewCount(Vocab)

derekrhodes March 24, 2010 at 12:39 am

This is a really great to hear! I’ve been mulling over a project, the main concern was with content licensing, and would like to hear more about how that works.

Some data I’d need from the lessons is:
Audio – remote mp3 to be loaded into a client side js audio library
Dialog text for each: pinyin, hanzi and translation.

I’d like to build a lesson player with: synced textual dialog, the ability to alter speed and easily loop over passages. I’ve got a prototype and would really like to polish it up and share with other Cpodders.

BTW,
A fantastic talk on api design from Joshua Bloch:
http://www.infoq.com/presentations/effective-api-design

I can’t wait to see what you guys come up with!

raychenon March 24, 2010 at 4:39 am

Thanks Hank, for posting this.
My initial request was to learn the code behind the cool features on Android.
How to retrieve data from a website and display them in a listview…

As the mobile use is way different from the desktop, I think achiving the minimal is the better choice ( mp3 listening, access to text ). Don’t forget screen estate is scarce.

I suggest an Open API to import (read only) ChinesPod dialogue,vocabulary and mp3 from each lesson and standardize the interface. I guess it could help any developper to spread your content through various platform.

I like the the way you iterate with new features . Keep up experimenting.

Raymond

John Biesnecker March 24, 2010 at 10:26 am

Are there any plans for allowing apps to integrate directly into the chinesepod.com website, via an OpenSocial container or something of the sort? Or will this API be strictly for offsite applications?

Hank Horkoff March 24, 2010 at 10:28 am

Derek,

With regards to your question around content licensing we will likely follow the example set by our iPhone and Andoid app’s. Users will need to authenticate before being able to access their account data. If they are ChinesePod premium users – they will have access to everything. If they are free users – we will restrict access to lessons just as we do on the website.

I came across Bloch’s work as well. It seems more complicated than we will need, but good design principles nonetheless.

How To Design A Good API and Why it Matters
http://www.youtube.com/watch?v=aAb7hSCtvGw
http://www.scribd.com/doc/33655/How-to-Design-a-Good-API-and-Why-it-Matters

Hank Horkoff March 24, 2010 at 10:59 am

John,

There are no plans at the moment for direct integration into ChinesePod.com. We will likely follow one of Bloch’s suggestions and keep it simple to start. Once we get the first set of API’s up and running we can start looking at additional use cases.

阿皮 (a1pi2) March 24, 2010 at 11:37 am

All the design guidelines you need: Be consistent in your API and don’t create legacy. It’s better to not introduce an API now than to regret it later.

I like the emphasis on use-cases. Look at the current set of apps to determine what APIs you need. I know of the iPhone and Android apps (never having run either, alas), WLCP, my BingXiangTie app, and the “pro” apps like Skritter, AISpeech and Pleco. Think of all the apps you might want to write and figure from that the set of capabilities you need to provide.

These apps fall into four categories:
iPhone/Android apps: Web experience optimized for a mobile client
WLCP: Accessing lesson assets for archiving and offline study
Bing Xiang Tie: Using expansion sentences as content for a new app
Skritter/AISpeech: Using vocabulary lists as content for a new app

I think these four apps cover most of the things that are unique to CPod. I also wrote an app that munges your MP3 files to make them more Zune-friendly, but that’s an extension of the WLCP class of apps: download and post-process the MP3. I can imagine an app that streams the community dialogues–like a TweetDeck for CPod–but that seems a bit silly. From these four classes of applications–and any other you want to enable–you can figure out all the capabilities you might want to expose.

Second thing you need to consider is how you want to expose the APIs. What kind of web service are you looking at? Are you limiting your target languages? Are you wanting to restrict the amount of automated archiving?

I’m happy to beta-test any of these APIs but I’m sure I’m not alone in that offer : ) I could sweeten the deal with a bit of expertise…I have coworkers who wrote one of the world’s most successul APIs.

ChineseTeachers.com March 24, 2010 at 3:55 pm

Hi Hank,

This is a great initiative for your students to be able to access their Cpod content everywhere on any channel/app/platform.

At ChineseTeachers.com, we will definitively be happy to be one of your lead platform to enable your students access their allowed content so that they can use it with their Chinese teacher(s) during their live lessons.

Today, our students can already upload their Cpod transcript (one by one) to use during their lessons, but this is clearly not the optimal experience, and is clearly limited to transcripts.

So, count us in!
The full ChineseTeachers.com team

PS: I am not mentioning the initiate we started with great Cpod lessons packages on our platform as this is addressing more the non-Cpod students.

John Ball March 26, 2010 at 8:49 am

Great news. I’ll be looking at integrating Chinese Pod with QQ to improve the standard of my written Chinese when I chat with my friends.

Hopefully I learn Chinese while doing this as I did when I wrote the first version of the program using the AutoIT Macro language.

It would be good to do it properly this time using published APIs.

Most of the functionality I added has since been provided by QQ but it would be good to look at this idea again although I do have a day job.

Mark March 28, 2010 at 11:29 pm

I have been developing a Web site for analyzing character structures (i.e. what radicals a character is composed of and what other characters share those radicals). I would like to be able to link to specific lesson dialogs that use the character under study, maybe highlight the character in its context. Honestly, I haven’t looked into whether the existing APIs support this or not. I haven’t gotten around to this but will.

Also, making the Web site known to CPOD users is of interest.

Jan Jonckheere April 4, 2010 at 4:50 pm

I have a Nokia N97 smartphone and would be happy to access my CPod-Vocabulary on my phone also

柏汤姆 (Bai Tangmu) May 9, 2010 at 12:00 pm

I’m a WebOS user on the Palm Pre platform. Unfortunately iTunes went out of their way to block our access…and I’ve also had trouble interfacing with the RSS feeds.

As a two-year subscriber to cPod, I wish you could find a way to allow a simple integration into FlashCards for the Palm: (Now that HP plunked down 1.4 Billion to buy Palm, it could make more sense.

http://www.jeharrisonline.com/palm/

The push seems fairly straightforward…and would serve as a reinforcement with the lessons.

John B August 6, 2010 at 5:24 pm

Hello everyone! I just wanted to leave a quick note and say that we’ve begun opening the API to outside developers — see this blog post for more information.

Leave a Comment

{ 1 trackback }

Previous post:

Next post: