Web Playlists - How does that thing work?

Posted: May 01, 2008  31 comments  

Average Rating

Tags
IIS Media Pack
Media
Web Playlists

Share this Post

Web Playlists! CTP2 been out there for a little more than a week now and some of you simply love it. Others, I am sure love it but I just don't know about that. Some others wonder how it works and the documentation available is a drop in the ocean. Firstly, we are working on providing more docs so please bear with us for the time being. If you need to know about something in specifc, let me know through forums.iis.net or simply post a comment here.

For now here are the magic words - "Open Seasame"... and voila ... an attempt at explaining the call flow between the provider / handler interface in the Web Playlists.

The figure below is pretty self explanatory but just adding some details might make understanding even easier:

  1. Client (Media Player) requests a playlist from the IIS server and gets a client side playlist (.asx) with obfuscated URLs in response
  2. Client next requests the entry 1 from the playlist.
  3. The request is passed on to the Web Playlists handler from the IIS 7 pipeline. The handler validates the request against the session and then passes it on to the provider
  4. The provider determines the content to be played for this request and lets handler know about the same
  5. The handler opens the file and returns the stream back to the player. While doing this client side cache is disabled with pragma:no-cache

The above might change a little when an entry in the isx is httpd and in that case provider will actually determine the entry from the web application associated to the entry. The process is pretty similar for nested playlists too.

image

If you are using Web Playlists and would like to have a feature in there give me a holler! We are in Beta and chances are your request may make it :)

Cheers

Comments

Hi Vishal,

I discovered your website today trying to find out something about how to chance the source/video/playlist after video's end.

(I'm looking for playlist or ajax solution for this)

My need is:  Do exactly what a broadcast channel does

1 - play the content;

2 - "first brake" - ad 1 video, ad 2 video, ad 3 video;

3 - go to the second block.

I discovered made it simple reading yours articles about SSPL. Thank's a lot.

But let's go to 2nd level, my videos will always exists on my site, but my sponsors videos don't and I want call those sponsors randomly.

I did'nt deeply study about do it all yet and I don't manage my media server(hosting provider).

I wanna ask you some dumb questions.

What is your suggestion about how to do this?

Is SSPL/Webplaylist for me?

Can I make my own asp script to control it?

Best!

May 15 2008 by Gui

Hi Gui

You can do this with Web Playlists. You could have an httpd entry in a playlist and then refer to your aspx/php web application. The web application could return the URL for the ad (external server). I blogged about it here blogs.iis.net/.../short-cut-to-integrate-web-playlists-with-an-existing-web-application.aspx

Let me know if that helps.

Regards

Vishal

May 20 2008 by vsood

Hi Vishal,

Is it possible to create the webplaylist.isx file on the fly with asp.net? My iea is to link to a single lets say "mywebsite.com/tvchannel.isx and creating the content of that isx file on the fly with infor coming from a database.

Currently I am creating .asx palylists on the fly with ASP.NET and it works fine. But I would like to take advantage of your obfuscated URLs.

Also could I return a file mydynamic.asx playlist to the isx HTTPD request instead of just a relative file link (ad.wmv) as in your example above.

Could I also return a file mydynamic.isx playlist to the isx HTTPD request?

How would the scenarios above influence URL obfuscation?

I tested webplaylists in combination with IIS 7.0 Bit Rate Throttling and it seems to work just fine. But I noticed that videos accessed through a webplaylist.isx link do not seem to be cached on the client computers even after watching the whole video. When linking directly to a video.wmv or a palylist.asx file the videos get cached on the client. Can you confirm that behaviour and is there a way to turn on caching?

Last but not least, how do webplaylists deal with prebuffering of media entries to allow seamless instant (without buffering) between media entries? This is especieally important for me because I intend to link to live streaming sources in between .isx playlist advertisement videos.

These are a lot of questions, but you guys were asking for feedback... :-)

Thanks a lot for your help!

Philipp

Jun 06 2008 by Anonymous

Hi Philipp

Thanks for trying out Web Playlists :).

Here are the answers to your question. I would also suggest posting to forums.iis.net as many more people monitor that.

"Is it possible to create the webplaylist.isx file on the fly with asp.net? My iea is to link to a single lets say "mywebsite.com/tvchannel.isx and creating the content of that isx file on the fly with infor coming from a database"

"Currently I am creating .asx palylists on the fly with ASP.NET and it works fine. But I would like to take advantage of your obfuscated URLs."

"Last but not least, how do webplaylists deal with prebuffering of media entries to allow seamless instant (without buffering) between media entries? This is especieally important for me because I intend to link to live streaming sources in between .isx playlist advertisement videos."

Yes, absolutely, Web Playlists allows you to do this. Your ASP page instead of serving asx directly could create isx file (format documented here - learn.iis.net/.../web-playlist---creating-a-simple-playlist) and then serve the link to the isx file instead of asx.

Also, an even better way to do this would be to write a custom provider to Web Playlists (.net providers as well as C++ providers are supported). You can read more about them - http://blogs.iis.net/vsood/archive/2008/04/22/exploring-custom-providers-wrapper-playlists.aspx). Web Playlists offers a very simple interface for you to write custom providers.

For buffering(pre-caching), do you intend to do this on the client side or server side - server side can be done through a custom provider only. For client side, if you are using WMP it would just work. If you are using SL, you will need to do client scripting through multiple layers as SL does not support pre-buffering next content.

"I tested webplaylists in combination with IIS 7.0 Bit Rate Throttling and it seems to work just fine. But I noticed that videos accessed through a webplaylist.isx link do not seem to be cached on the client computers even after watching the whole video. When linking directly to a video.wmv or a palylist.asx file the videos get cached on the client. Can you confirm that behaviour and is there a way to turn on caching?"

This is a security feature, Web Playlist sets the pragma: no-cache and thus the client side caching does not happen. If you really want this, the only way currently is use IIS settings. I don't know the answer right now but will try to find it for you. Is it possible to share the scenario where you would need this?

"Also could I return a file mydynamic.asx playlist to the isx HTTPD request instead of just a relative file link (ad.wmv) as in your example above.

Could I also return a file mydynamic.isx playlist to the isx HTTPD request?"

Currently, httpd entries are just at the entry level, for you to return a complete playlist, once again custom provider is the way to go.

We would be releasing an ASP.net application sample that uses Web Playlists interface with source code in a couple of days. You could take that and use it as an example. Please look out for post on my blog - http://blogs.iis.net/vsood

Jun 06 2008 by vsood

>>> This is a security feature, Web Playlist sets the pragma: no-cache and thus the client side caching does not happen. If you really want this, the only way currently is use IIS settings. I don't know the answer right now but will try to find it for you. Is it possible to share the scenario where you would need this?

Our scenarios:

1. Windows Media Player offers the "Save as..." option to save a WMV file after the user has watched the whole video. If the playlist entries do not get cached on the client then the user has to download the whole video again to save it locally.

We are distributing DRM free 1 hour videos at 1 mbps bit rate. This makes Web Playlists useless for us, because we have to pay for the bandwidth twice and the user has to download twice. We need the capability to turn client side caching on/off for each playlist HREF entry, because we encourage our users to download and transcode our videos for viewing on handheld devices and/or for free distribution.

2. We use identical pre-/ post-roll videos or ads for hundreds of videos in our library. If webplaylists would allow us to enable client side caching for those pre/post videos and ads, we could save a lot of bandwidth. We need IIS 7 bit rate throttling with client side caching, but we still would like to use ISX Web Playlists instead of ASX because of the URL obfuscation, which makes sure people cannot directly link to our videos through their websites.

Also, you mentioned to post a ASP.net application sample that uses Web Playlists. Is this abailable already?

Thanks!

Philipp

Jun 25 2008 by Anonymous

Hello,

I read many IIS 7 SSPL documents and am still unsure if this is the correct direction to take for my needs..

Basically I am looking to have the following:

-Creating a flash file which connects to a dynamic playlist of some sort in order to stream video clips one after another (server side streaming). Sort of like a television.. So when users goto the url they will see whatever is playing at that time. I do not want them to have any control of the content, meaning no play, stop, pause buttons. They see whatever is being played at that time..

- I would also like the ability to edit the dynamic playlist on the fly (via asp or actionscript perhaps) while not disrupting what is currently being played.

-One last requirment is that the ideo being streamed playes directly in the browser (via flash file mentionned above)

Will IIS 7 Media Pack Server Side Playlist do all of the above or is there a better solution that I should be following?

Please advise!

Thank you in advance

Jun 26 2008 by Anonymous

Hi Philipp

Thanks for the feedback on the Web Playlists Client side cache. Currently, web Playlists disables that and there is no way to enable that. Having said that, there are two things possible:

1. This is more work for you but you would need to write an IIS module that runs after Web Playlists and enables the cache. This is more work and therefore not sure how inclined you will be to try it out.

2. We have taken your feedback and we are going to provide a configuration option for enabling client side caching in our next Go Live release. It should be out very soon.

Yes, the ASP.net application is available at blogs.iis.net/.../webplaylists-role-based-custom-web-playlists-provider.aspx

If you would like to discuss more or have any answer more questions, I would be happy to help out. You can contact me at vsood@microsoft.com also.

Regards,

Vishal

Jun 30 2008 by vsood

Hi,

The short answer is Yes, IIS7 Web Playlists would help you achieve this purpose.

- Web Playlists works with Flash videos so this is totally possible. You can write a web Playlist and disable seek, skips on that. You can then play this file on client side using a flash player. More details on how to you use Flash are here: learn.iis.net/.../web-playlists-for-iis-70--using-playlist-with-different-players

- You can edit the playlists on the fly. However, you would need to know the exact number of entries in the file. You could also write a custom provider, that would let you generate playlists by using your own server-side format. I mean you do no have to use the .isx format that we ship with. (E.g., you could create your playlists by reading directly from database). You could also generate the playlist from withing a PHP/ASP page. Here is an example: blogs.iis.net/.../webplaylists-role-based-custom-web-playlists-provider.aspx

- Lastly, yes you can play the playlist in the browser using a Flash player in your case or SL / WMP.ocx for windows media content

Regards

Vishal

Jun 30 2008 by vsood

Hi D

The purpose of Web Playlists is that for your site you can embed a player and point it to a playlist on the server. The server-side approach is interesting only if you want to restrict users from skipping, etc and also in cases you dont want to give our your URLs to consumers. In either case I would recommend this solution for you

Mar 28 2009 by vsood

Submit a Comment

  • Plain text is accepted.
  • URLs starting with http:// are converted to links.