365 Tube is a project to verify the feasibility of an enterprise-2.0 version of a YouTube-like podcast library based in the cloud. The project can be downloaded from Codeplex http://365tube.codeplex.com/ and used for free.
Using the code and instructions posted here everyone can setup a private YouTube-like video library, e.g. for enterprise-2.0 – in a few hours, completely built on cloud components. It also demonstrates how application design has chanced from code-centric (in original pks) to service-centric cloud-modules, scaling from a handful of users up to 10.000s.
Why having a private E2.0 video library?
Such a library can be used for various training and communication purposes. e.g.
- CxOs explaining business strategy or quarterly results (businessTV)
- Roll-out of new SW, e.g. corp-wide Win7 rollout (change management)
- Training programs, e.g. ITIL training (training)
- Quality-Awards etc. (celebration)
best-practice sharing of any kind
Considering time, travel and media savings plus productivity increase companies usually experience high ROIs. Channels may be restricted to certain departments or open for all employees. Material may vary from instant-recording to professional HDTV.
In this blog series we are going to see how the demo environment will look like and how to set it up on your own Office 365 environment. The ingredients for this solution are:
- Office 365 E plan (request a free trial on http://www.microsoft.com/en-us/office365/)
- Amazon AWS Account (request a free trial on http://aws.amazon.com/free/)
- Transloadit.com Account (request an account here http://www.transloadit.com)
- Our 365 Tube demo wsp (download it for free on http://365tube.codeplex.com/)
Office 365 will be used for the look & feel and user interaction. We will find there the social capabilities of SharePoint (Ratings, Comments, and MySites). Amazon S3 will be used to store all the videos and thumbnails we are uploading to our 365 Tube environment. Last but not least, Transloadit is used to transcode the uploaded videos and extract the preview thumbnails for our application. It is also responsible to store the videos and thumbnails directly on our Amazon S3 storage in the cloud.As you can see, there are no on-premise services at all.
- We will rely on cloud services only.
A first tour
But before we start setting-up our demo environment, I would like to show you how it will look like with some screens. The next picture shows how it will look like when you are entering the site for the first time. ![]()
You will find three sections showing the latest features, uploaded, and highest rated videos. In the upper right corner you will find a video upload button and a podcast recording button. Latter service allows you to record a podcast directly without having video recording software installed. The service is provided by the third party solution http://www.screencast-o-matic.com.
Whenever you upload a video you will be prompted with the screen below.
You simply need to choose a video to upload and press “Upload”. This triggers a video upload to the Transloadit.com service, which in turn is responsible to transcode the video into mp4 format and extracting the thumbnails from it. These videos are going to be stored directly on our Amazon S3 store.
After the video is processed, you will be redirected to a standard SharePoint Display form.
In the background, the form will already contain all Amazon S3 URLs for video and thumbnails. The end-user is not able to see these fields with the help of the Codeplex solution LFMF that I build some time ago (http://listformmanipulation.codeplex.com/).
you probably noticed that the author field is pre-filled with the currently logged-in user. The technique for it was already explained in one of my preceding blog posts (http://www.lamber.info/post/2012/04/14/LFMF-–-How-do-I-assign-the-current-user-to-a-SharePoint-form.aspx)
After you filled out the metadata and pressed save, the video details are stored also in SharePoint. As you probably already noticed, the videos and thumbnail files are not stored in Office 365, but in Amazon S3. In that way we will not have any storage limitations and issues with our Office 365 account. Office 365 only stores the metadata and links to video files and thumbnails.
Finally, when clicking on a video you will be presented with a SharePoint Dialog. In this dialog you are able to play back the video, rate it, and give some comments:
Setting-up the demo environment
That is more or less everything to show for now. If you are interested in setting up the environment for yourself and play around, then follow the next blog posts:
Summary
With this blog post we saw how the 365 Tube project is looking like and how to setup the environment for our own. As already mentioned, this first version is a feasibility study and not a fully functional product. It shows, however, that with some good ideas and a mixture of cloud services we are able to provide an interesting service. We will extend our solution with more functionality in future.
If you are interested in getting in touch with the project leads just check out our Codeplex page http://365tube.codeplex.com/.
Stay tuned,
Patrick


Excellent article. I look forward to testing this out in the next week. Thanks for all this useful information.
Could this be configured to use a different transcoding server instead of transloadit.com? Cloud is great but would prefer to keep the videos on the internal network and transcode on an on-premise server.
Hello Brian,
yes you can. On the root site you find an aspx page UploadFile.aspx. Please change the upload conditions there. In addition, you need to verify the section that turns back all URLs to SharePoint:
onSuccess: function(assembly) {
var result = "";
result += assembly.results.encode1024[0].url + ";"
result += assembly.results.thumbs[0].url + ";"
result += assembly.results.thumbs[1].url + ";"
result += assembly.results.thumbs[2].url + ";"
result += assembly.results.thumbs[3].url + ";"
result += assembly.results.thumbs[4].url + ";"
result += assembly.results.thumbs[5].url + ";"
result += assembly.results.encode480[0].url + ";"
window.frameElement.commitPopup(result);
}
As you can see from the parameters you have to pass some Thumbnail URLs and the video URLs. Clearly, this could even be changed furhter if you want.
If you need assistance please let me know.
Please note that this version is still a POC. On the other hand, we will start creating a more flexible solution and post it on Codeplex soon.
br,
patrick
good article, I helped with the info
You have lots of useful pointers on this site. This is a well composed article that I have bookmarked for future reading. Have a fun.