As promised some notes on the next session I attended at Google I/O was The Next Generation of Social is in a Hangout. Hopefully you are already familiar with Hangouts in Google+ (a place to video chat with up to 10 other people and/or stream to the masses as a Hangout On Air). As part of Hangouts there are collaborative applications you can use. Initially these have been focused around shared activities like watch YouTube clips with other people, or working on a Google Doc. What you might not know is for the last couple of months developers have had access to the Hangouts API which allows anyone to make their own custom Hangout applications. For example, using this API Google have been able to develop the Art Project Hangout (video embedded below), which lets you collaboratively explore works of fine art with other people.
So with a couple of lines of code (included below) I can embed an Etherpad shared notepad in a Google Hangout (without publishing a live version you’ll have to trust me that this works by watching this demo ;).
The code
<?xml version="1.0" encoding="UTF-8" ?> <Module> <ModulePrefs title="Etherpad Extension Example"> <Require feature="rpc" /> </ModulePrefs> <Content type="html"><![CDATA[ <html> <body> <script src="https://hangoutsapi.talkgadget.google.com/hangouts/api/hangout.js?v=1.0" ></script> <p><iframe frameborder="no" scrolling="yes" src="http://beta.etherpad.org/p/mhawksey?showControls=true&showChat=true&showLineNumbers=true&useMonospaceFont=false" style="width:100%; height: 100%;"></iframe></p> </body> </html> ]]> </Content> </Module>
Notes on making this
Here are some things I noted when making this example.
- A good starting point is Writing Gadget XML Apps. Including the hangout API script in your gadget is essential (and get the write one).
NOTE: For developer sandbox, use this instead of the above script:
<script src="//hangoutsapi.talkgadget.google.com/hangouts/_/api/hangout.js?v=1.1"></script>
- For development you should use the sandbox. Here are instructions for setting up and running.
- You can run gadgets as extensions which appear in the sidebar or applications that run centre of screen.
- If like me you prefer hacking other peoples code there is a selection of sample applications including how to do face and mouse motion tracking.
- To publish your Hangout extension you need a verified Chrome Web Store Developer account which costs $5.00 to setup. More information on publishing here.
- You can create a Hangout button which launches a Hangout with your application running.
It’s a gadget, but not a gadget
The example above is very rudimentary and doesn’t use any of the Hangout API for getting/setting data, detecting participants etc. and in this example all the collaborative gubbings is being handled by Etherpad. You might recognise the XML syntax being used in this example because it’s based on the Google Gadget framework with influences* from the OpenSocial specification.
*a Googler was asked in the session if existing OpenSocial gadgets could be used in Hangouts and the answer was no with the explanation along the lines of ‘Google iterate solutions so they took the best of OpenSocial and came up with something new, but they do hope to bridge the gap in the future’
Before you get carried away
It’s quite interesting that you can wrap almost any existing application (even existing widgets) and run them in a Hangout. For the education sector the huge limitation that I can see is that Hangouts are limited to 10 participants, which will work on small tutorial groups but nothing larger. Apparently, as picked up by Sharif Salah in the fireside chat after the session, this isn’t a technical constraint but Google don’t think you can socially manage a hangout with more than 10 people. So any aspirations of creating a Blackboard Collaborate/Adobe Connect/Big Blue Button style webinar system for larger classes will have to go on hold for now, maybe it’ll be something Google include when they get serious about Google+ for Enterprise.
There are a couple of alternatives if this sort of hackery interests you. For example as part of the JISC Distributed VLE (DVLE) Programme a number of projects looked at how widgets could be used to rapidly and efficiently incorporate more functionality into learning and information systems. You can read more about this in the Extending the learning environment briefing paper. It’s still work in progress but eventually you might be able to wonder over to EDUKAPP (a pilot web app store for the UK Higher Education sector – more background), grab some relevant widgets and make your own hangout. And if you want video you could use something like the Tokbox Open Tok API to get streaming video in a couple of minutes.
Scanning the horizon it is interesting to see the open source webinar platform Big Blue Button include an internal API on their roadmap which would make it easier to extend the functionality of the platform.
In summary, with a bit of XML you can easily make a Hangout app but be aware of the limitations with group size. Also there are other similar gadget/widget based solutions you might want to try. So can you see a place for custom Hangout apps in education?