Access the YouTube Data API v3 with managed OAuth authentication. Search videos, manage playlists, access channel information, and interact with comments and subscriptions.
Reference
Search Videos, Channels, or Playlists
GET /youtube/youtube/v3/searchmaton youtube search videos 'machine learning' --limit 10 --order viewCountQuery parameters:
part- Required:snippetq- Search querytype- Filter by type:video,channel,playlistmaxResults- Results per page (1-50, default 5)order- Sort order:date,rating,relevance,title,viewCountpublishedAfter- Filter by publish date (RFC 3339)publishedBefore- Filter by publish date (RFC 3339)channelId- Filter by channelvideoDuration-short(<4min),medium(4-20min),long(>20min)pageToken- Pagination token
maton youtube search channels 'rob pike'maton youtube search playlists 'study music'Get Video Details
GET /youtube/youtube/v3/videos?part=snippet,statistics,contentDetails&id=dQw4w9WgXcQmaton youtube video view dQw4w9WgXcQParts available:
snippet- Title, description, thumbnails, channel infostatistics- View count, likes, commentscontentDetails- Duration, dimension, definitionstatus- Upload status, privacy statusplayer- Embedded player HTML
Get My Videos (Uploaded)
GET /youtube/youtube/v3/search?part=snippet&forMine=true&type=video&order=viewCount&maxResults=25maton youtube search mine --order viewCount --limit 25Rate Video (Like/Dislike)
POST /youtube/youtube/v3/videos/rate?id=dQw4w9WgXcQ&rating=likematon youtube video rate dQw4w9WgXcQ --rating likeRating values: like, dislike, none
Get Trending Videos
GET /youtube/youtube/v3/videos?part=snippet,statistics&chart=mostPopular®ionCode=US&maxResults=10maton youtube video list --region US --limit 10Get Video Categories
GET /youtube/youtube/v3/videoCategories?part=snippet®ionCode=USmaton youtube video-category list --region USGet Channel Details
GET /youtube/youtube/v3/channels?part=snippet,statistics,contentDetails&id=UCBJycsmduvYEL83R_U4JriQmaton youtube channel view UCBJycsmduvYEL83R_U4JriQGet My Channel
GET /youtube/youtube/v3/channels?part=snippet,statistics,contentDetails&mine=truematon youtube channel mineResponse:
{
"items": [
{
"id": "UCxyz123",
"snippet": {
"title": "My Channel",
"description": "Channel description",
"customUrl": "@mychannel",
"publishedAt": "2020-01-01T00:00:00Z",
"thumbnails": {...}
},
"statistics": {
"viewCount": "1000000",
"subscriberCount": "50000",
"videoCount": "100"
},
"contentDetails": {
"relatedPlaylists": {
"uploads": "UUxyz123"
}
}
}
]
}Get Channel by Username
GET /youtube/youtube/v3/channels?part=snippet,statistics&forUsername=GoogleDevelopersmaton youtube channel view --username GoogleDevelopersTo look up by @handle instead, use maton youtube channel view --handle GoogleDevelopers.
List My Playlists
GET /youtube/youtube/v3/playlists?part=snippet,contentDetails&mine=true&maxResults=25maton youtube playlist list --limit 25Get Playlist
GET /youtube/youtube/v3/playlists?part=snippet,contentDetails&id={playlistId}maton youtube playlist view {playlistId}Create Playlist
POST /youtube/youtube/v3/playlists?part=snippet,status
Content-Type: application/json
{
"snippet": {
"title": "My New Playlist",
"description": "A collection of videos",
"defaultLanguage": "en"
},
"status": {
"privacyStatus": "private"
}
}maton youtube playlist create --title 'My New Playlist' --description 'A collection of videos' --privacy privatePrivacy values: public, private, unlisted
Update Playlist
PUT /youtube/youtube/v3/playlists?part=snippet,status
Content-Type: application/json
{
"id": "PLxyz123",
"snippet": {
"title": "Updated Playlist Title",
"description": "Updated description"
},
"status": {
"privacyStatus": "public"
}
}maton youtube playlist update PLxyz123 --title 'Updated Playlist Title' --description 'Updated description' --privacy publicDelete Playlist
DELETE /youtube/youtube/v3/playlists?id=PLxyz123maton youtube playlist delete PLxyz123List Playlist Items
GET /youtube/youtube/v3/playlistItems?part=snippet,contentDetails&playlistId={playlistId}&maxResults=50maton youtube playlist items {playlistId} --limit 50Add Video to Playlist
POST /youtube/youtube/v3/playlistItems?part=snippet
Content-Type: application/json
{
"snippet": {
"playlistId": "PLxyz123",
"resourceId": {
"kind": "youtube#video",
"videoId": "abc123xyz"
},
"position": 0
}
}maton youtube playlist add-video --playlist PLxyz123 --video abc123xyz --position 0Remove from Playlist
DELETE /youtube/youtube/v3/playlistItems?id=UEx5dGVzdAAAmaton youtube playlist remove-video UEx5dGVzdAAAThe argument is the playlistItem ID (from maton youtube playlist items {playlistId}), not the video ID.
List My Subscriptions
GET /youtube/youtube/v3/subscriptions?part=snippet&mine=true&maxResults=50maton youtube subscription list --limit 50Check Subscription to Channel
GET /youtube/youtube/v3/subscriptions?part=snippet&mine=true&forChannelId={channelId}maton youtube subscription list --for-channel {channelId}The response is empty when no subscription exists.
Subscribe to Channel
POST /youtube/youtube/v3/subscriptions?part=snippet
Content-Type: application/json
{
"snippet": {
"resourceId": {
"kind": "youtube#channel",
"channelId": "UCxyz123"
}
}
}maton youtube subscription create --channel UCxyz123Unsubscribe
DELETE /youtube/youtube/v3/subscriptions?id={subscriptionId}maton youtube subscription delete {subscriptionId}The argument is the subscription ID (from maton youtube subscription list), not the channel ID.
List Video Comments
GET /youtube/youtube/v3/commentThreads?part=snippet,replies&videoId={videoId}&order=time&maxResults=100maton youtube comment list --video {videoId} --order time --limit 100Add Comment to Video
POST /youtube/youtube/v3/commentThreads?part=snippet
Content-Type: application/json
{
"snippet": {
"videoId": "{videoId}",
"topLevelComment": {
"snippet": {
"textOriginal": "Great video!"
}
}
}
}maton youtube comment create --video {videoId} --text 'Great video!'Reply to Comment
POST /youtube/youtube/v3/comments?part=snippet
Content-Type: application/json
{
"snippet": {
"parentId": "{commentId}",
"textOriginal": "Thanks for your comment!"
}
}maton youtube comment create --parent {commentId} --text 'Thanks for your comment!'Delete Comment
DELETE /youtube/youtube/v3/comments?id={commentId}maton youtube comment delete {commentId}Daily Quota
Maton enforces a daily request quota of 3,000 requests per account, weighted by upstream request cost. The quota resets every 24 hours in a rolling window. To increase this limit, reach out to support@maton.ai.