Web Playlists - How does that thing work?

Posted: May 01, 2008  29 comments

Average Rating

Tags
IIS Media Pack
Media
Web Playlists

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

  1. Web Playlists - How does that thing work? - Vishal Sood
    May 1, 2008

    Pingback from  Web Playlists - How does that thing work? - Vishal Sood

  2. Gui
    May 15, 2008

    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!

  3. vsood
    May 20, 2008

    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

  4. jorkeo - hosting geek
    June 5, 2008

    Another event down REMIX08 - two cities on week - what a blast. Check out Michael Kordahi's wrap up of

  5. Anonymous
    June 6, 2008

    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

  6. vsood
    June 6, 2008

    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

  7. Anonymous
    June 25, 2008

    >>> 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

  8. Anonymous
    June 26, 2008

    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

  9. vsood
    June 30, 2008

    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

  10. vsood
    June 30, 2008

    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

  11. Vishal Sood
    July 21, 2008

    I am really excited to announce that Web Playlists Go Live was just released to public. Here are the

  12. IIS 7, playlist e PHP · Commenta la tecnologia, la telefonia, i software
    July 28, 2008

    Pingback from  IIS 7, playlist e PHP · Commenta la tecnologia, la telefonia, i software

  13. Vishal Sood
    September 12, 2008

    I am pleased to announce that the Web Playlists Release Candidate (RC) release is ready for you to download

  14. Windows Server Division WebLog
    September 15, 2008

    A couple of weeks ago, I blogged about IIS Extensions – new functionality for IIS that comes directly

  15. IIS 7.0: Go Live extensions “URL Rewriter and Web Playlists”
    September 16, 2008

    Pingback from  IIS 7.0: Go Live extensions “URL Rewriter and Web Playlists”

  16. BlogMS - Official Microsoft Team Blogs
    September 23, 2008

    There were 214 articles from the Microsoft Team Blogs and feeds last week. Here is my summary of interesting

  17. Windows Server Division WebLog
    October 2, 2008

    If you visited the new Microsoft Web Platform site yesterday, you would have noticed that we’ve performed

  18. DotNet Rookies » The Microsoft Web Platform Installer - One click to Install Them All
    October 10, 2008

    Pingback from  DotNet Rookies » The Microsoft Web Platform Installer - One click to Install Them All

  19. DotNet Rookies » Two New Extension Updates for IIS 7.0 Available
    October 10, 2008

    Pingback from  DotNet Rookies » Two New Extension Updates for IIS 7.0 Available

  20. Windows Server team Blog
    October 13, 2008

    If you visited the new Microsoft Web Platform site yesterday, you would have noticed that we’ve performed

  21. Weblog.BassQ.nl » Blog Archive » One click to Install Them All
    October 17, 2008

    Pingback from  Weblog.BassQ.nl  » Blog Archive   » One click to Install Them All

  22. The Microsoft Web Platform Installer - One click to Install Them All at MS Tech News
    October 27, 2008

    Pingback from  The Microsoft Web Platform Installer - One click to Install Them All at MS Tech News

  23. Two New Extension Updates for IIS 7.0 Available at MS Tech News
    October 27, 2008

    Pingback from  Two New Extension Updates for IIS 7.0 Available at MS Tech News

  24. The Microsoft Web Platform Installer - One click to Install Them All | DotNet Rookies
    October 29, 2008

    Pingback from  The Microsoft Web Platform Installer - One click to Install Them All | DotNet Rookies

  25. Two New Extension Updates for IIS 7.0 Available | DotNet Rookies
    October 29, 2008

    Pingback from  Two New Extension Updates for IIS 7.0 Available | DotNet Rookies

  26. The Microsoft Web Platform Installer - One click to Install Them All | DotNet Rookies
    October 30, 2008

    Pingback from  The Microsoft Web Platform Installer - One click to Install Them All | DotNet Rookies

  27. Two New Extension Updates for IIS 7.0 Available | DotNet Rookies
    October 30, 2008

    Pingback from  Two New Extension Updates for IIS 7.0 Available | DotNet Rookies

  28. Two New Extension Updates for IIS 7.0 Available | DotNet Rookies
    October 30, 2008

    Pingback from  Two New Extension Updates for IIS 7.0 Available | DotNet Rookies

  29. The Microsoft Web Platform Installer - One click to Install Them All | DotNet Rookies
    October 30, 2008

    Pingback from  The Microsoft Web Platform Installer - One click to Install Them All | DotNet Rookies

Page view counter