I’m trying to get the size of a YouTube video. I’m using a Gdata API call to retrieve the basic informations (title, URLs, thumbnails and categories) but I can’t find the vi
Following on from Isra's solution. Yes it does seem that youtube hasn't developed their oEmbed API code as the videoFrameSize returns 470 x 270 px. But least it gives you something to GRAB hold of dynamically!
Using the suck it ans see method that 'Lee taylor' put forward is a KISS way of achieving this, but not ideal if you need a dynamic content.
OK - bearing in mind the inaccurate dimensions provided by oEmbed - it does provide a solution.
I am currently developing a strusturedData generator for video content on a gallery all linked to youTube videos.
Here is an inaccurate way of getting a Dimension from youtube, but least its data!
How to get the video size from youtube.
Stage 1: Call the oEmbed data from youtube::
$video_id = "your youtube videos unique ID number ";
$oEmbed         = simplexml_load_file('http://www.youtube.com/oembed?url=http%3A//www.youtube.com/watch?v=' . $video_id . '&format=xml');
Stage 2:
    $data['height'] = $oEmbed->height;
    $data['width']  = $oEmbed->width;
    $data['videoFrameSize'] = $oEmbed->height . "x" . $oEmbed->width . "px";
Stage 3:
use the variables in your coding as you feel best to use::
If you want to get dimensions for the example video from the question:
Then try this URL, using Noembed:
It will return the following JSON:
{
  "version": "1.0",
  "title": "まるです。",
  "author_name": "mugumogu",
  "provider_url": "https://www.youtube.com/",
  "width": 459,
  "height": 344,
  "thumbnail_height": 360,
  "type": "video",
  "thumbnail_width": 480,
  "provider_name": "YouTube",
  "url": "https://www.youtube.com/watch?v=z_AbfPXTKms",
  "author_url": "https://www.youtube.com/user/mugumogu",
  "html": "\n<iframe width=\" 459\" height=\"344\" src=\"https://www.youtube.com/embed/z_AbfPXTKms?feature=oembed\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"></iframe>\n",
  "thumbnail_url": "https://i.ytimg.com/vi/z_AbfPXTKms/hqdefault.jpg"
}
It also supports JSONP for cross-origin requests:
For more info see this answer:
A simple demo using jQuery:
var id = 'z_AbfPXTKms';
var url = 'https://www.youtube.com/watch?v=' + id;
$.getJSON('https://noembed.com/embed',
    {format: 'json', url: url}, function (data) {
    alert('Dimensions: ' + data.width + 'x' + data.height);
});
See DEMO on JSBin.
If you load the youtube video like this, you can trigger a javascript function only after the video has loaded.
<script src="https://www.youtube.com/iframe_api"></script>
    <center>
        <div class="videoWrapper">
           <div id="player"></div>
        </div>
    </center>
<script>
    function onYouTubeIframeAPIReady() {
        player = new YT.Player('player', {
            videoId:'xxxxxxxxxxx',playerVars: {  controls:0,autoplay:0,disablekb:1,enablejsapi:1,iv_load_policy:3,modestbranding:1,showinfo:0,rel:0,theme:'light' }
        } );
        resizeHeroVideo();
    }
</script>
resizeHeroVideo is called after the video is loaded.
var player = null;
$( document ).ready(function() {
    resizeHeroVideo();
} );
$(window).resize(function() {
    resizeHeroVideo();
});
function resizeHeroVideo() {
    var content = $('#hero');
    var contentH = viewportSize.getHeight();
    contentH -= 158;
    content.css('height',contentH);
    if(player != null) {
        var iframe = $('.videoWrapper iframe');
        var iframeH = contentH - 150;
        if (isMobile) {
            iframeH = 163; 
        }
        iframe.css('height',iframeH);
        var iframeW = iframeH/9 * 16;
        iframe.css('width',iframeW);
    }
}
and then we calculate the sizes to maintain it's position in the center of the page adhering to the appropriate 16:9 aspect ratio.
Complete gist here. Live example here.
There is a solution right now: if you scrape the video public page:
http://www.youtube.com/watch?v=[id]
you can see the open graph width and height tags, for example:
<meta property="og:video:width" content="1920">
<meta property="og:video:height" content="1080">
So you can get the dimensions there ;-)
You can also get it thanks to the oEmbed implementation of YouTube. Example:
https://www.youtube.com/oembed?url=https://www.youtube.com/watch?v=hUvbb_eUP84&format=xml
format=json is also accepted.