Solution 1
You can use YouTube Data API to access most of the information about the video, including duration:
<script type="text/javascript">
function youtubeFeedCallback(json){
document.write(json["data"]["duration"] + " second(s)");
}
</script>
<script type="text/javascript" src="http://gdata.youtube.com/feeds/api/videos/4TSJhIZmL0A?v=2&alt=jsonc&callback=youtubeFeedCallback&prettyprint=true"></script>
When using jQuery you can use $.getJSON()
to make things easier.
Solution 2
Seems like YouTube JavaScript API v3 allows you to get the correct duration inside the onYouTubePlayerReady()
event. All you need to do is pass &version=3
when calling swfobject.embedSWF()
method.