The instant search feature at Zero Dollar Movies uses the YouTube data API to find free movies on the YouTube website.
When the user enters a search query, the script makes a request to the gdata.youtube.com (YouTube data API) for search results. The resultset is returned in JSON format. The code uses YouTube API v2 and, while optional, it may be a good idea to include a developer key in the API requests.
You can also enable billing the Google Cloud console to further increase your quota.
When the user enters a search query, the script makes a request to the gdata.youtube.com (YouTube data API) for search results. The resultset is returned in JSON format. The code uses YouTube API v2 and, while optional, it may be a good idea to include a developer key in the API requests.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | <!-- Written by Amit Agarwal --> <input id="searchquery" /> <div id="results"></div> <!-- Include the latest jQuery library --> <script src="http://code.jquery.com/jquery-latest.min.js"></script> <script type="text/javascript> jQuery(document).ready(function ($) { $('#searchquery').keyup(function () { // the search term var q = $('#searchquery').val().trim(); // container to display search results var $results = $('#results'); // YouTube Data API base URL (JSON response) var url = "http://gdata.youtube.com/feeds/api/videos/?v=2&alt=jsonc&callback=?" // set paid-content as false to hide movie rentals url = url + '&paid-content=false'; // set duration as long to filter partial uploads url = url + '&duration=long'; // order search results by view count url = url + '&orderby=viewCount'; // we can request a maximum of 50 search results in a batch url = url + '&max-results=50'; $.getJSON(url + "&q=" + q, function (json) { var count = 0; if (json.data.items) { var items = json.data.items; var html = ""; items.forEach(function (item) { // Check the duration of the video, // full-length movies are generally longer than 1 hour var duration = Math.round((item.duration) / (60 * 60)); // Filter out videos that aren't in the Film or Movies category if ((duration > 1) && (item.category == "Movies" || item.category == "Film")) { // Include the YouTube Watch URL youtu.be html += '<p><a href="http://youtu.be/' + item.id + '">'; // Add the default video thumbnail (default quality) html += '<img src="http://i.ytimg.com/vi/' + item.id + '/default.jpg">'; // Add the video title and the duration html += '<h2>' + item.title + ' ' + item.duration + '</h2></a></p>'; count++; } }); } // Did YouTube return any search results? if (count === 0) { $results.html("No videos found"); } else { // Display the YouTube search results $results.html(html); } }); }); }); </script> |
Generate a YouTube Developer Key
You can go to the Google API console to create a developer key for your project. Go to cloud.google.com/console and start a new project. Give your project a unique name and then choose APIs to turn on the YouTube Data API. Next create a new key under Public API access, set the type as Browser key and the website referrer as your website address (to prevent abuse).YouTube Data API Quota Limits
YouTube Data API v3′s quota is 50,000,000 units per day. The quota cost of making a single search request to YouTube is just 2 units and thus a normal web application is unlikely to exceed the quota anytime soon.You can also enable billing the Google Cloud console to further increase your quota.
No comments:
Post a Comment