The D4L API Proxy App simplifies the implementation of OAuth APIs by proxying them through simple Basic Authentication secured endpoints, permitting everything from elementary shell scripts to sophisticated ETL systems simplified access.
APIs such as Google's YouTube Reporting API require an offline OAuth token grant. Allowing a third-party system to gather data on your behalf requires the system to retrieve and use a token provided after you authenticate and grant access. The D4L API Proxy App allows you to perform these steps beforehand and expose proxied HTTPS access to these systems with simple Basic Authentication.
- Login to D4L API Proxy.
- Create an Application by choosing a name, secret, provider, and OAuth scopes required for specific APIs (see documentation below).
- Authorize the new application.
- Access API with Basic Authentication username and password provided by your new application.
Access
- Base Endpoints
/api/<user_id>/<app_name>/google/youtube/v3/<category>/<action>
- Required Scopes
https://www.googleapis.com/auth/youtube.readonly
Overview
The YouTube Data API v3 proxy utilizes the Google API Client Library for Python
and supports access to top level instance methods (which return an object) expressed as category and
invocation of second level methods expressed as action.
The proxy passes query string arguments directly to an action invoked on a category.
Support
| category | action | arguments |
|---|---|---|
videos |
list |
documentation |
playlists |
list |
documentation |
playlistItems |
list |
documentation |
Please contact info@d4l.dev to request additional endpoints for this proxy.
Examples
Get video snippets:
curl -u '<user_id>__<app_name>:<app_password>' --request GET 'https://api-proxy.app.d4l.dev/api/<user_id>/<app_name>/google/youtube/v3/videos/list?part=id,snippet&id=OkmNXy7er84,EK32jo7i5LQ'
Get playlists:
curl -u '<user_id>__<app_name>:<app_password>' --request GET 'https://api-proxy.app.d4l.dev/api/<user_id>/<app_name>/google/youtube/v3/playlists/list?part=id,snippet&channelId=UC9D7VN2HldiRFdxFvCcyA7A'
Get playlist items:
curl -u '<user_id>__<app_name>:<app_password>' --request GET 'https://api-proxy.app.d4l.dev/api/<user_id>/<app_name>/google/youtube/v3/playlistItems/list?part=id,snippet&playlistId=PL221B13914A7EF3A2'
See the official YouTube Data API v3 documentation.
Access
- Base Endpoints
/api/<user_id>/<app_name>/google/youtubeReporting/v1/<category>/<action>
- Required Scopes
https://www.googleapis.com/auth/yt-analytics.readonly
Overview
The YouTube Reporting API v3 proxy utilizes the Google API Client Library for Python
and supports access to top level instance methods (which return an object) expressed as category and
invocation of second level methods expressed as action.
The proxy passes query string arguments directly to an action invoked on a category.
Support
| category | action | arguments |
|---|---|---|
jobs |
create |
documentation |
delete |
documentation | |
get |
documentation | |
list |
documentation | |
reports |
get |
documentation |
list |
documentation | |
reportTypes |
list |
documentation |
media |
download |
documentation |
Please contact info@d4l.dev to request additional endpoints for this proxy.
Examples
Get report types:
curl -u '<user_id>__<app_name>:<app_password>' --request GET 'https://api-proxy.app.d4l.dev/api/<user_id>/<app_name>/google/youtubeReporting/v1/reportTypes/list'
Create Job:
curl -u '<user_id>__<app_name>:<app_password>' --request GET 'https://api-proxy.app.d4l.dev/api/<user_id>/<app_name>/google/youtubeReporting/v1/jobs/create?reportTypeId=channel_combined_a2&name=channel_combined_a2'
List Jobs:
curl -u '<user_id>__<app_name>:<app_password>' --request GET 'https://api-proxy.app.d4l.dev/api/<user_id>/<app_name>/google/youtubeReporting/v1/jobs/list'
Get Job:
curl -u '<user_id>__<app_name>:<app_password>' --request GET 'https://api-proxy.app.d4l.dev/api/<user_id>/<app_name>/google/youtubeReporting/v1/jobs/get?jobId=5e0d3bb5-0339-44b8-8fad-ecfb73e33339'
List reports (for Job ID):
curl -u '<user_id>__<app_name>:<app_password>' --request GET 'https://api-proxy.app.d4l.dev/api/<user_id>/<app_name>/google/youtubeReporting/v1/reports/list?jobId=5e0d3bb5-0339-44b8-8fad-ecfb73e33339'
Get report:
curl -u '<user_id>__<app_name>:<app_password>' --request GET 'https://api-proxy.app.d4l.dev/api/<user_id>/<app_name>/google/youtubeReporting/v1/reports/get?jobId=5e0d3bb5-0339-44b8-8fad-ecfb73e33339&reportId=7454014867'
Download report:
curl -u '<user_id>__<app_name>:<app_password>' --request GET 'https://api-proxy.app.d4l.dev/api/<user_id>/<app_name>/google/youtubeReporting/v1/media/download?download_name=report.csv&url=https://youtubereporting.googleapis.com/v1/media/CHANNEL/0zi46itD6kedA4LYZvuVIg/jobs/5e0d3bb5-0339-44b8-8fad-ecfb73e33339/reports/7454014867?alt=media'
See the official YouTube Reporting API v3 documentation.
Access
- Base Endpoints
/api/<user_id>/<app_name>/google/youtubeAnalytics/v2/<category>/<action>
- Required Scopes
https://www.googleapis.com/auth/yt-analytics.readonly
Overview
The YouTube Analytics API v2 proxy utilizes
the Google API Client Library for Python and
supports access to top level instance methods (which return an object) expressed as category and
invocation of second level methods expressed as action.
The proxy passes query string arguments directly to an action invoked on a category.
Support
| category | action | arguments |
|---|---|---|
groups |
insert |
documentation |
list |
documentation | |
update |
documentation | |
groupItems |
insert |
documentation |
list |
documentation | |
reports |
query |
documentation |
Please contact info@d4l.dev to request additional endpoints for this proxy.
Examples
List groups:
curl -u '<user_id>__<app_name>:<app_password>' --request GET 'https://api-proxy.app.d4l.dev/api/<user_id>/<app_name>/google/youtubeAnalytics/v2/groups/list'
Query:
curl -u '<user_id>__<app_name>:<app_password>' --request GET 'https://api-proxy.app.d4l.dev/api/<user_id>/<app_name>/google/youtubeAnalytics/v2/reports/query?startDate=2020-01-01&endDate=2022-12-23&maxResults=250&dimensions=day&maxResults=10&metrics=views&ids=channel==MINE'
See the official YouTube Analytics API v2 documentation.
Access
- Base Endpoints
/api/<user_id>/<app_name>/google/analytics/v3/<category>/<action>
- Required Scopes
https://www.googleapis.com/auth/analytics.readonly
Overview
The Analytics API v3 proxy utilizes the Google API Client Library for Python
and supports access to top level instance methods (which return an object) expressed as category and
invocation of second level methods expressed as action.
The proxy passes query string arguments directly to an action invoked on a category.
Support
| category | action | arguments |
|---|---|---|
ga |
get |
documentation |
mcf |
get |
documentation |
Please contact info@d4l.dev to request additional endpoints for this proxy.
Examples
Query analytics:
curl -u '<user_id>__<app_name>:<app_password>' --request GET 'https://api-proxy.app.d4l.dev/api/<user_id>/<app_name>/google/analytics/v3/ga/get?ids=ga:123316202&start_date=2022-11-01&end_date=2022-11-30&metrics=ga:pageviews'
See the official Analytics API v3 documentation.