07/02/2012

The day I coded a (better) Chatroulette Clone: CamCarousel!

If you came here to get the web’s leading Chatroulette Clone script for you to run it on your own web site, you’ve come to the right place. Get it now!

If you haven’t been living under a rock, you might have heard of the latest Internet hype: Chatroulette.

In essence the site is a web cam speed dating platform.

Instead of letting you decide whom you video chat with, it keeps connecting you randomly. At peak times more than 50.000 users join Chatroulette, with an average of 20.000 per night.

The service spread viral and gained so much popularity, that even the New York Magazine and “Good Morning America” picked it up as one of their topics.

Now, some call Chatroulette scary, some even dangerous but most users seem to enjoy the experience.

I gave Chatroulette a try but it didn’t give that much to me. However, given my background in technology and my love for all-things-Internet, I got intrigued by the question what it would mean to build something like Chatroulette.

Say “Hello” to CamCarousel!

As a strange coincidence, our plans for spending this weekend kind of collapsed with good friends stuck in sudden snow. That gave me some unexpected free hours, I could use to dive deeper into it.

The original Chatroulette is an Adobe Flex 3 application. And here it was, another coincidence: I’ve been part of the Flex 3 pre-release team!

Despite the hype around HTML 5 (which has yet to prove all of its many promises to us) I do like Adobe’s Flash platform. While I haven’t coded anything in Adobe Flex for more than a year, I remembered that I loved working with the tools and the language.

One thing that stroke me was that I couldn’t image Chatroulette using any of Adobe’s Flash Media Server offerings. Back when I was involved into the platform, there was only one way to create video sharing experiences with Flash – and that was very expensive.

Chatroulette must either have had done anything proprietary, or the Flash platform must have had evolved, while I’ve been away.

Turns out, the later is true: Adobe recently introduced Stratus, a hosted service that helps orchestrating peer-2-peer connections between Flash player instances. While the service is involved during the media stream setup, the audio and video payload is not distributed through Adobe’s servers, hence the peer-2-peer nature:

Having identified this missing piece in my overall picture, I fired up Flex Builder 3 and started to code a prototype and codenamed it “CamCarousel”, as a little  homage to the original Chatroulette. :)

It took me a day to build CamCarousel‘s basic skeleton, including a lightweight PHP based back end, that provides a RESTful API to manage sessions, preferences, etc. I decided to give CamCarousel some advanced features, like connection preferences and more sophisticated handling of connection issues.

It’s sort of a fascinating aspect of developing software that once you set out for a journey, it sometimes takes you farther than expected. That happened to me with this project and so I spent more time on fleshing out the details.

Initially I planned to just do a little proof-of-concept, purely out of curiosity and – of course – fun. However, CamCarousel grew quite significantly during the day.

I ultimately decided to get CamCarousel.com and host the Flex application there.

What’s next?

Well, to be honest, I’m not sure. I’m contemplating releasing the Flex project to the open source community, for others to build upon it. I might as well just enhance the service on my own during my spare time, sort of as a hobby project that keeps me coding (which after all, I still like).

I’m contemplating support for white-labeling, themes and premium accounts. All of this is really just ideas at the moment.

If you’ve got some time, give CamCarousel a try and let me know your thoughts. If you can’t find a partner there, it’s maybe because not enough people know about it, yet.

Feel free to help spreading the word by tweeting, facebooking and what-not about CamCarousel.

I’m very much looking forward to any feedback.

facebook comments:

Comments

  1. cory says:

    I would like to speak with you for a grand idea I have that would use your product as its backbone

Speak Your Mind

*