Skip to content

JohnnyTheTank/apiNG-plugin-youtube

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

apiNG

Join the chat at https://gitter.im/JohnnyTheTank/apiNG npm version Bower version

apiNG-plugin-youtube is a Youtube Data API v3 plugin for apiNG.

Information

Documentation

  1. INSTALLATION
    1. Get file
    2. Include file
    3. Add dependency
    4. Add plugin
  2. API KEY
    1. Generate your apiKey
    2. Insert your apiKey into aping-config.js
  3. USAGE
    1. Models
    2. Requests
    3. Rate limit

1. INSTALLATION

I. Get file

Install via either bower, npm, CDN (jsDelivr) or downloaded files:

II. Include file

Include aping-plugin-youtube.min.js in your apiNG application

<!-- when using bower -->
<script src="bower_components/apiNG-plugin-youtube/dist/aping-plugin-youtube.min.js"></script>

<!-- when using npm -->
<script src="node_modules/aping-plugin-youtube/dist/aping-plugin-youtube.min.js"></script>

<!-- when using cdn file -->
<script src="//cdn.jsdelivr.net/npm/aping-plugin-youtube@latest/dist/aping-plugin-youtube.min.js"></script>

<!-- when using downloaded files -->
<script src="aping-plugin-youtube.min.js"></script>

III. Add dependency

Add the module jtt_aping_youtube as a dependency to your app module:

angular.module('app', ['jtt_aping', 'jtt_aping_youtube']);

IV. Add the plugin

Add the plugin's directive aping-youtube="[]" to your apiNG directive and configure your requests

<aping
    template-url="templates/social.html"
    model="social"
    items="20"
    aping-youtube="[{'search':'funny cats'}]">
</aping>

2. API KEY

I. Generate your apiKey

  1. Login on console.developers.google.com
  2. Select a project, or create a new one.
  3. In the sidebar on the left, expand APIs & auth.
    • Click APIs
      • In the list of APIs, make sure the status is ON for the YouTube Data API v3
    • Click Credentials
      • Click New credentials
      • Choose API key
      • Choose Browser key
      • Name and create your API Key

II. Insert your apiKey into aping-config.js

Open js/apiNG/aping-config.js in your application folder. It should be look like this snippet:

angular.module('jtt_aping').config(['$provide', function ($provide) {
    $provide.value("apingDefaultSettings", {
        apingApiKeys : {
            youtube : [
                {'apiKey':'<YOUR_YOUTUBE_API_KEY>'},
            ]
            //...
        }
    });
}]);

⚠️ Replace <YOUR_YOUTUBE_API_KEY> with your youtube apiKey

3. USAGE

I. Models

Supported apiNG models

model content support max items
per request
(native) default items
per request
social videos full 50 5
video videos full 50 5

support:

  • full: the source platform provides a full list with usable results
  • partly: the source platfrom provides just partly usable results

II. Requests

Every apiNG plugin expects an array of requests as html attribute.

Requests by Video

parameter sample description
videoId cBLulx9f9vc Youtube videoId (comma seperated list)

Sample requests:

  • [{'videoId':'cBLulx9f9vc'}, {'videoId':'tC76tIp0kBk'}]
  • [{'videoId':'cBLulx9f9vc,tC76tIp0kBk'}]

Requests by Channel

parameter sample default description optional
channelId UCtQMmwBJGvINGU0lZ_GrZKQ The channelId parameter indicates that the API response should only contain resources created by the channel
(Youtube Name to Channel ID Converter)
no
items 20 5 Items per request (0-50) yes
search happy The search parameter specifies the query term to search for. Your request can also use the Boolean NOT (-) and OR (|) operators to exclude videos or to find videos that are associated with one of several search terms. For example, to search for videos matching either "boating" or "sailing", set the search parameter value to boating|sailing. Similarly, to search for videos matching either "boating" or "sailing" but not "fishing", set the search parameter value to boating|sailing -fishing yes
order rating date The order parameter specifies the method that will be used to order resources in the API response. Use date, rating, relevance, title, videoCount, viewCount, ($RANDOM) yes

Sample requests:

  • [{'channelId':'UCtQMmwBJGvINGU0lZ_GrZKQ'}, {'channelId':'UC2pmfLm7iq6Ov1UwYrWYkZA'}]
  • [{'channelId':'UC37PFGlxWgx4tU6SlhPCdCw', 'items':10, 'search':'prank'}]

Requests by Playlist

parameter sample default description optional
playlistId PLykXdRRd47IX_5gUChdhDjgKmQyZtRrC_ The playlistId parameter indicates that the API response should only contain resources containing in the playlist no
items 20 5 Items per request (0-50) yes

Sample requests:

  • [{'playlistId':'PLXkE1kzapj4a9oWMggQ0i682chTam-I98'}, {'playlistId':'PL0XHkAy96suU3u6rx8S-NBEaHBgqsHTck'}]
  • [{'playlistId':'PL0XHkAy96suU3u6rx8S-NBEaHBgqsHTck', 'items':10}]

Requests by Search

parameter sample default description optional
search music The search parameter specifies the query term to search for. Your request can also use the Boolean NOT (-) and OR (|) operators to exclude videos or to find videos that are associated with one of several search terms. For example, to search for videos matching either "boating" or "sailing", set the search parameter value to boating|sailing. Similarly, to search for videos matching either "boating" or "sailing" but not "fishing", set the search parameter value to boating|sailing -fishing no
items 20 5 Items per request (0-50) yes
order rating date The order parameter specifies the method that will be used to order resources in the API response. Use date, rating, relevance, title, videoCount, viewCount, ($RANDOM) yes
lat -13.163333 Defines a circular geographic area and also restricts a search to videos that specify, in their metadata, a geographic location that falls within that area. yes
lng -72.545556 Defines a circular geographic area and also restricts a search to videos that specify, in their metadata, a geographic location that falls within that area. yes
distance 1km 5000m The parameter value must be a floating point number followed by a measurement unit. Valid measurement units are m, km, ft, and mi. (valid values: 1500m, 5km, 10000ft, and 0.75mi) The API does not support values larger than 1000 kilometers. yes

Sample requests:

  • [{'search':'eagles'}, {'search':'Thomas Müller'}, {'search':'prank'}]
  • [{'search':'machu picchu', 'lat':'-13.163333', 'lng':'-72.545556', 'distance':'5km'}]

Requests by Coordinates

parameter sample default description optional
lat -13.163333 Defines a circular geographic area and also restricts a search to videos that specify, in their metadata, a geographic location that falls within that area. no
lng -72.545556 Defines a circular geographic area and also restricts a search to videos that specify, in their metadata, a geographic location that falls within that area. no
distance 1km 5000m The parameter value must be a floating point number followed by a measurement unit. Valid measurement units are m, km, ft, and mi. (valid values: 1500m, 5km, 10000ft, and 0.75mi) The API does not support values larger than 1000 kilometers. yes
order rating date The order parameter specifies the method that will be used to order resources in the API response. Use date, rating, relevance, title, videoCount, viewCount, ($RANDOM) yes
items 20 5 Items per request (0-50) yes

Sample requests:

  • [{'lat':'-13.163333', 'lng':'-72.545556', 'distance':'5km'}]

III. Rate limit

Visit the official Youtube Data API documentations: Quota usage

Licence

MIT