Connect to the YouTube Analytics API with a custom OAuth client
Go to siteThe YouTube Analytics API is an incredibly powerful tool for developers and businesses. This API allows developers to access rich statistics about their YouTube channel and videos, allowing them to create custom applications and tools to better understand their viewers, customers, and markets. With the YouTube Analytics API, you can build:
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
youtube_analytics_api_custom_app: {
type: "app",
app: "youtube_analytics_api_custom_app",
}
},
async run({steps, $}) {
return await axios($, {
url: `https://www.googleapis.com/oauth2/v1/userinfo`,
headers: {
Authorization: `Bearer ${this.youtube_analytics_api_custom_app.$auth.oauth_access_token}`,
},
})
},
})
YouTube (Analytics API) - Custom App uses OAuth authentication. When you connect your YouTube (Analytics API) - Custom App account, Pipedream will open a popup window where you can sign into YouTube (Analytics API) - Custom App and grant Pipedream permission to connect to your account. Pipedream securely stores and automatically refreshes the OAuth tokens so you can easily authenticate any YouTube (Analytics API) - Custom App API.
Pipedream requests the following authorization scopes when you connect your account:
email
profile
https://www.googleapis.com/auth/yt-analytics-monetary.readonly
https://www.googleapis.com/auth/yt-analytics.readonly
GET
https://accounts.google.com/o/oauth2/v2/auth
?
client_id={{custom_fields.client_id}}
&
redirect_uri={{oauth.redirect_uri}}
&
state={{oauth.state}}
&
response_type=code
&
scope={{oauth.space_separated_scopes}}
&
prompt=consent
&
access_type=offline
POST
https://oauth2.googleapis.com/token
content-type: application/x-www-form-urlencoded
accept: application/json
client_id={{custom_fields.client_id}}
&
client_secret={{custom_fields.client_secret}}
&
redirect_uri={{oauth.redirect_uri}}
&
grant_type=authorization_code
&
code={{oauth.code}}
POST
https://oauth2.googleapis.com/token
content-type: application/x-www-form-urlencoded
accept: application/json
client_id={{custom_fields.client_id}}
&
client_secret={{custom_fields.client_secret}}
&
grant_type=refresh_token
&
refresh_token={{oauth.refresh_token}}