1 /** The osmplayer namespace. */ 2 var osmplayer = osmplayer || {}; 3 4 /** The parser object. */ 5 osmplayer.parser = osmplayer.parser || {}; 6 7 /** 8 * The youtube parser object. 9 * 10 * @return {object} The youtube parser. 11 **/ 12 osmplayer.parser.youtube = { 13 14 // The priority for this parser. 15 priority: 10, 16 17 // Return if this is a valid youtube feed. 18 valid: function(feed) { 19 return (feed.search(/^http(s)?\:\/\/gdata\.youtube\.com/i) === 0); 20 }, 21 22 // Returns the type of request to make. 23 getType: function(feed) { 24 return 'jsonp'; 25 }, 26 27 // Returns the feed provided the start and numItems. 28 getFeed: function(feed, start, numItems) { 29 feed = feed.replace(/(.*)\??(.*)/i, '$1'); 30 feed += '?start-index=' + (start + 1); 31 feed += '&max-results=' + (numItems); 32 feed += '&v=2&alt=jsonc'; 33 return feed; 34 }, 35 36 // Parse the feed. 37 parse: function(data) { 38 data = data.data; 39 var playlist = { 40 total_rows: data.totalItems, 41 nodes: [] 42 }; 43 44 // Iterate through the items and parse it. 45 for (var index in data.items) { 46 if (data.items.hasOwnProperty(index)) { 47 var item = data.items[index]; 48 playlist.nodes.push({ 49 title: item.title, 50 description: item.description, 51 mediafiles: { 52 image: { 53 'thumbnail': { 54 path: item.thumbnail.sqDefault 55 }, 56 'image': { 57 path: item.thumbnail.hqDefault 58 } 59 }, 60 media: { 61 'media': { 62 player: 'youtube', 63 id: item.id 64 } 65 } 66 } 67 }); 68 } 69 } 70 71 return playlist; 72 } 73 }; 74