{"id":"657828d7-b698-49f4-b480-227a89027598","entityType":"agent","slug":"clawhub-clawbus-clawbus-youtube-unified-api","name":"YouTube API","canonicalUrl":"https://www.xpersona.co/agent/clawhub-clawbus-clawbus-youtube-unified-api","canonicalPath":"/agent/clawhub-clawbus-clawbus-youtube-unified-api","generatedAt":"2026-10-10T21:47:41.965Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T19:41:33.250Z","emptyReason":null},"description":"Use when YouTube data is needed through MyBrandMetrics: search YouTube videos, get video metadata, inspect channel info, browse playlists, list comments, che...","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.3K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s1714nww0520qjy3akv321qsjs86bfp7:clawbus-youtube-unified-api","sourceUrl":"https://clawhub.ai/clawbus/clawbus-youtube-unified-api","homepage":"https://clawhub.ai/clawbus/skills/clawbus-youtube-unified-api","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/clawbus/clawbus-youtube-unified-api","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/clawbus/skills/clawbus-youtube-unified-api","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":62,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"YouTube API technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T19:41:33.250Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T19:41:33.250Z","emptyReason":null},"stars":null,"forks":null,"downloads":1277,"packageName":null,"latestVersion":"1.2.4","tractionLabel":"1.3K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T19:41:33.250Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T19:41:33.250Z","lastCrawledAt":"2026-10-10T19:41:33.250Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T19:41:33.250Z","lastVerifiedAt":null,"highlights":[{"version":"1.2.4","createdAt":"2026-05-20T07:48:17.373Z","changelog":"Improve YouTube search relevance","fileCount":11,"zipByteSize":36177},{"version":"1.2.3","createdAt":"2026-05-19T01:34:18.376Z","changelog":"Remove requirements and refine account selection wording","fileCount":10,"zipByteSize":34526},{"version":"1.2.2","createdAt":"2026-05-18T15:46:13.139Z","changelog":"Improve YouTube search visibility and workflow wording","fileCount":10,"zipByteSize":34614},{"version":"1.2.1","createdAt":"2026-05-18T01:18:33.927Z","changelog":"Remove ClawBus prefix from skill title","fileCount":10,"zipByteSize":34411},{"version":"1.2.0","createdAt":"2026-05-17T15:34:31.320Z","changelog":"Update YouTube unified API references for MyBrandMetrics Discovery API","fileCount":10,"zipByteSize":34421},{"version":"1.1.0","createdAt":"2026-05-15T13:53:18.443Z","changelog":"Improve YouTube Unified API page with MyBrandMetrics setup flow","fileCount":6,"zipByteSize":25336},{"version":"1.0.0","createdAt":"2026-05-08T07:23:35.852Z","changelog":"Initial release from clawbus.com","fileCount":11,"zipByteSize":122994}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s1714nww0520qjy3akv321qsjs86bfp7:clawbus-youtube-unified-api","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s1714nww0520qjy3akv321qsjs86bfp7:clawbus-youtube-unified-api` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/clawbus/clawbus-youtube-unified-api before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-clawbus-clawbus-youtube-unified-api/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-clawbus-clawbus-youtube-unified-api/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-clawbus-clawbus-youtube-unified-api/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-clawbus-clawbus-youtube-unified-api/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-clawbus-clawbus-youtube-unified-api/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-clawbus-clawbus-youtube-unified-api/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T21:47:41.961Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-clawbus-clawbus-youtube-unified-api/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-clawbus-clawbus-youtube-unified-api/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-clawbus-clawbus-youtube-unified-api/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-clawbus-clawbus-youtube-unified-api/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T19:41:33.250Z","emptyReason":null},"readme":"Skill: YouTube API\n\nOwner: clawbus\n\nSummary: Use when YouTube data is needed through MyBrandMetrics: search YouTube videos, get video metadata, inspect channel info, browse playlists, list comments, che...\n\nTags: analytics:1.2.4, channel:1.2.4, creator:1.2.4, google-api:1.2.4, latest:1.2.4, metadata:1.2.4, playlists:1.2.4, reporting:1.2.4, video:1.2.4, youtube:1.2.4, youtube-api:1.2.4, youtube-data:1.2.4\n\nVersion history:\n\nv1.2.4 | 2026-05-20T07:48:17.373Z | user\n\nImprove YouTube search relevance\n\nv1.2.3 | 2026-05-19T01:34:18.376Z | user\n\nRemove requirements and refine account selection wording\n\nv1.2.2 | 2026-05-18T15:46:13.139Z | user\n\nImprove YouTube search visibility and workflow wording\n\nv1.2.1 | 2026-05-18T01:18:33.927Z | user\n\nRemove ClawBus prefix from skill title\n\nv1.2.0 | 2026-05-17T15:34:31.320Z | user\n\nUpdate YouTube unified API references for MyBrandMetrics Discovery API\n\nv1.1.0 | 2026-05-15T13:53:18.443Z | user\n\nImprove YouTube Unified API page with MyBrandMetrics setup flow\n\nv1.0.0 | 2026-05-08T07:23:35.852Z | user\n\nInitial release from clawbus.com\n\nArchive index:\n\nArchive v1.2.4: 11 files, 36177 bytes\n\nFiles: agents/openai.yaml (254b), references/catalog.json (182892b), references/curl.md (2742b), references/index.md (837b), references/mybrandmetrics-api.md (1935b), references/services/youtube-analytics-v2.md (14430b), references/services/youtube-data-v3.md (147598b), references/services/youtube-reporting-v1.md (11849b), skill-card.md (3517b), SKILL.md (6565b), _meta.json (146b)\n\nFile v1.2.4:SKILL.md\n\n---\nname: YouTube API\ndescription: >\n  Use when YouTube data is needed through MyBrandMetrics: search YouTube\n  videos, get video metadata, inspect channel info, browse playlists, list\n  comments, check live broadcasts, query YouTube Analytics, and work with\n  YouTube Reporting jobs. Covers YouTube Data API v3, YouTube Analytics API v2,\n  and YouTube Reporting API v1 after YouTube is connected in MyBrandMetrics.\n---\n\n# YouTube API\n\nSearch YouTube videos, get YouTube video metadata, inspect channel info, browse\nplaylists, list comments, check live broadcasts, query YouTube Analytics, and\nwork with YouTube Reporting jobs through the MyBrandMetrics Discovery API.\n\nUse this skill when YouTube content or YouTube account data is needed after\nYouTube is connected in MyBrandMetrics. It covers YouTube Data API v3, YouTube\nAnalytics API v2, and YouTube Reporting API v1 from one interface.\n\nThis skill is for YouTube data, analytics, reporting, and upload-route\nworkflows. It does not provide YouTube transcripts.\n\nWebsite: [https://www.clawbus.com/](https://www.clawbus.com/)  \nMyBrandMetrics API: [https://mybrandmetrics.com/](https://mybrandmetrics.com/)\n\n## Core Capabilities\n\n| Capability | Details |\n| --- | --- |\n| YouTube API access | Work with YouTube Data API v3, YouTube Analytics API v2, and YouTube Reporting API v1 from one skill. |\n| YouTube search results | Search YouTube videos, channels, playlists, and live content with query, channel, date, region, and result filters. |\n| Video metadata | Get YouTube video title, description, thumbnails, publish date, duration, status, and statistics. |\n| Channel info | Get YouTube channel details, subscriptions, playlists, playlist items, and related resources. |\n| Comments and discussions | List YouTube comment threads and related comment data for videos or channels. |\n| Live broadcasts | List and inspect YouTube live broadcasts and related live resources. |\n| Upload routes | Use YouTube video upload routes, including multipart and resumable upload patterns. |\n| YouTube Analytics | Query YouTube Analytics reports for connected channels, videos, and creator content. |\n| YouTube Reporting | List YouTube Reporting API report types, create reporting jobs, and inspect generated reporting resources. |\n| Endpoint references | Use generated service references and a compact catalog for endpoint lookup. |\n\n## Setup Flow\n\n1. Open [https://mybrandmetrics.com/](https://mybrandmetrics.com/) and sign in\n   with Google.\n2. In MyBrandMetrics, open **Data sources**.\n3. Connect YouTube as a data source.\n4. Wait until the MyBrandMetrics YouTube connection is ready.\n5. In [https://mybrandmetrics.com/](https://mybrandmetrics.com/), get the\n   MyBrandMetrics API key.\n6. Install the `clawbus-youtube-unified-api` skill.\n7. Start a YouTube search, channel lookup, playlist workflow, analytics query,\n   reporting job, or upload workflow with natural-language instructions or\n   direct Discovery API requests.\n\n## Authentication\n\nUse the MyBrandMetrics API key for Discovery API requests.\n\n```bash\nexport MYBRANDMETRICS_API_KEY=\"YOUR_API_KEY\"\nexport MYBRANDMETRICS_API_BASE_URL=\"https://api.mybrandmetrics.com\"\n```\n\nPass the key in the request header:\n\n```text\nX-API-Key: YOUR_API_KEY\n```\n\nDo not put real API keys, account session values, or Google access tokens in\nskill files, examples, logs, or chat replies.\n\n## Discovery Routing\n\nUse `/discovery/{service}/{path}`.\n\n| Service | Google API | Example route |\n| --- | --- | --- |\n| `youtube` | YouTube Data API v3 | `/discovery/youtube/channels` |\n| `youtubeAnalytics` | YouTube Analytics API v2 | `/discovery/youtubeAnalytics/reports` |\n| `youtubeReporting` | YouTube Reporting API v1 | `/discovery/youtubeReporting/jobs` |\n\nCommon version prefixes are omitted in the generated examples.\n\n## Search-Friendly Workflows\n\nCommon YouTube workflows include:\n\n- search YouTube videos by keyword, channel, date, region, or content type;\n- get YouTube video metadata, thumbnails, statistics, captions, and status;\n- inspect YouTube channel info, playlists, playlist items, comments, and\n  subscriptions;\n- browse YouTube playlists and channel uploads;\n- list YouTube comments and discussion threads;\n- query YouTube Analytics metrics such as views, watch time, and engagement;\n- create and inspect YouTube Reporting API jobs;\n- prepare YouTube upload requests for connected channels.\n\n## Account Selection\n\nIf the MyBrandMetrics API key is connected to more than one YouTube account,\nchoose the account for the request before running it.\n\nWhen MyBrandMetrics returns an account selection response, show only\nnon-sensitive account labels such as display name, email, and connection ID.\nThen include the selected account identifier, such as `oauth_connection_id`, in\nthe Discovery API request.\n\n## Example Requests\n\nGet connected channel details:\n\n```bash\ncurl -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\n  \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/channels?part=snippet,contentDetails,statistics&mine=true\"\n```\n\nQuery YouTube Analytics:\n\n```bash\ncurl -sS \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtubeAnalytics/reports\" \\\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\n  --url-query \"ids=channel==MINE\" \\\n  --url-query \"startDate=2026-01-01\" \\\n  --url-query \"endDate=2026-01-31\" \\\n  --url-query \"metrics=views,estimatedMinutesWatched\"\n```\n\nNatural-language examples:\n\n```text\nFind recent YouTube videos about creator analytics and return titles, URLs, and view counts.\n```\n\n```text\nGet analytics for my connected YouTube channel for the last 30 days.\n```\n\n```text\nList playlists from my connected YouTube channel and show the first 10 playlist items.\n```\n\n## Reference Files\n\n| File | Purpose |\n| --- | --- |\n| `references/index.md` | Reference overview and load order. |\n| `references/curl.md` | Curl workflow, request construction, upload, download, and errors. |\n| `references/mybrandmetrics-api.md` | Discovery routing, account selection, and MyBrandMetrics request rules. |\n| `references/services/youtube-data-v3.md` | YouTube Data API v3 endpoint reference. |\n| `references/services/youtube-analytics-v2.md` | YouTube Analytics API v2 endpoint reference. |\n| `references/services/youtube-reporting-v1.md` | YouTube Reporting API v1 endpoint reference. |\n| `references/catalog.json` | Compact machine-readable endpoint catalog. |\n\nBefore upload, update, delete, or reporting-job workflows, confirm the connected\nYouTube account, target resource, request parameters, and intended result.\n\nFile v1.2.4:_meta.json\n\n{\n  \"ownerId\": \"kn713zgmx26jep6vrh0kbmmkw986a4xc\",\n  \"slug\": \"clawbus-youtube-unified-api\",\n  \"version\": \"1.2.4\",\n  \"publishedAt\": 1779263297373\n}\n\nFile v1.2.4:references/catalog.json\n\n{\r\n  \"sources\": {\r\n    \"youtube\": \"https://youtube.googleapis.com/$discovery/rest?version=v3\",\r\n    \"youtubeAnalytics\": \"https://youtubeanalytics.googleapis.com/$discovery/rest?version=v2\",\r\n    \"youtubeReporting\": \"https://youtubereporting.googleapis.com/$discovery/rest?version=v1\"\r\n  },\r\n  \"services\": {\r\n    \"youtube\": {\r\n      \"title\": \"YouTube Data API v3\",\r\n      \"mybrandmetrics_base_url\": \"https://api.mybrandmetrics.com\",\r\n      \"reference\": \"references/services/youtube-data-v3.md\",\r\n      \"method_count\": 83,\r\n      \"schema_count\": 199\r\n    },\r\n    \"youtubeAnalytics\": {\r\n      \"title\": \"YouTube Analytics API v2\",\r\n      \"mybrandmetrics_base_url\": \"https://api.mybrandmetrics.com\",\r\n      \"reference\": \"references/services/youtube-analytics-v2.md\",\r\n      \"method_count\": 8,\r\n      \"schema_count\": 12\r\n    },\r\n    \"youtubeReporting\": {\r\n      \"title\": \"YouTube Reporting API v1\",\r\n      \"mybrandmetrics_base_url\": \"https://api.mybrandmetrics.com\",\r\n      \"reference\": \"references/services/youtube-reporting-v1.md\",\r\n      \"method_count\": 8,\r\n      \"schema_count\": 18\r\n    }\r\n  },\r\n  \"method_count\": 99,\r\n  \"methods\": [\r\n    {\r\n      \"service\": \"youtube\",\r\n      \"id\": \"youtube.abuseReports.insert\",\r\n      \"resource\": \"abuseReports\",\r\n      \"name\": \"insert\",\r\n      \"http_method\": \"POST\",\r\n      \"path\": \"youtube/v3/abuseReports\",\r\n      \"mybrandmetrics_path\": \"/discovery/youtube/abuseReports\",\r\n      \"flat_path\": \"youtube/v3/abuseReports\",\r\n      \"required_parameters\": [\r\n        \"part\"\r\n      ],\r\n      \"parameters\": {\r\n        \"part\": {\r\n          \"location\": \"query\",\r\n          \"required\": true,\r\n          \"type\": \"string\",\r\n          \"repeated\": true,\r\n          \"enum\": null\r\n        }\r\n      },\r\n      \"request_schema\": \"AbuseReport\",\r\n      \"response_schema\": \"AbuseReport\",\r\n      \"oauth_scopes\": [\r\n        \"https://www.googleapis.com/auth/youtube\",\r\n        \"https://www.googleapis.com/auth/youtube.force-ssl\"\r\n      ],\r\n      \"has_media_upload\": false,\r\n      \"mybrandmetrics_upload_path\": null,\r\n      \"supports_media_download\": false,\r\n      \"curl\": \"curl -sS -X POST \\\"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/abuseReports\\\" \\\\\\n  -H \\\"X-API-Key: $MYBRANDMETRICS_API_KEY\\\" \\\\\\n  -H \\\"Accept: application/json\\\" \\\\\\n  --json \\\"@body.json\\\" \\\\\\n  --url-query \\\"part=snippet\\\"\",\r\n      \"upload_curl\": null\r\n    },\r\n    {\r\n      \"service\": \"youtube\",\r\n      \"id\": \"youtube.activities.list\",\r\n      \"resource\": \"activities\",\r\n      \"name\": \"list\",\r\n      \"http_method\": \"GET\",\r\n      \"path\": \"youtube/v3/activities\",\r\n      \"mybrandmetrics_path\": \"/discovery/youtube/activities\",\r\n      \"flat_path\": \"youtube/v3/activities\",\r\n      \"required_parameters\": [\r\n        \"part\"\r\n      ],\r\n      \"parameters\": {\r\n        \"channelId\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"home\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"boolean\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"mine\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"boolean\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"publishedAfter\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"publishedBefore\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"regionCode\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"maxResults\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"integer\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"pageToken\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"part\": {\r\n          \"location\": \"query\",\r\n          \"required\": true,\r\n          \"type\": \"string\",\r\n          \"repeated\": true,\r\n          \"enum\": null\r\n        }\r\n      },\r\n      \"request_schema\": null,\r\n      \"response_schema\": \"ActivityListResponse\",\r\n      \"oauth_scopes\": [\r\n        \"https://www.googleapis.com/auth/youtube\",\r\n        \"https://www.googleapis.com/auth/youtube.force-ssl\",\r\n        \"https://www.googleapis.com/auth/youtube.readonly\"\r\n      ],\r\n      \"has_media_upload\": false,\r\n      \"mybrandmetrics_upload_path\": null,\r\n      \"supports_media_download\": false,\r\n      \"curl\": \"curl -sS -X GET \\\"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/activities\\\" \\\\\\n  -H \\\"X-API-Key: $MYBRANDMETRICS_API_KEY\\\" \\\\\\n  -H \\\"Accept: application/json\\\" \\\\\\n  --url-query \\\"part=snippet\\\"\",\r\n      \"upload_curl\": null\r\n    },\r\n    {\r\n      \"service\": \"youtube\",\r\n      \"id\": \"youtube.captions.delete\",\r\n      \"resource\": \"captions\",\r\n      \"name\": \"delete\",\r\n      \"http_method\": \"DELETE\",\r\n      \"path\": \"youtube/v3/captions\",\r\n      \"mybrandmetrics_path\": \"/discovery/youtube/captions\",\r\n      \"flat_path\": \"youtube/v3/captions\",\r\n      \"required_parameters\": [\r\n        \"id\"\r\n      ],\r\n      \"parameters\": {\r\n        \"id\": {\r\n          \"location\": \"query\",\r\n          \"required\": true,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"onBehalfOf\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"onBehalfOfContentOwner\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        }\r\n      },\r\n      \"request_schema\": null,\r\n      \"response_schema\": null,\r\n      \"oauth_scopes\": [\r\n        \"https://www.googleapis.com/auth/youtube.force-ssl\",\r\n        \"https://www.googleapis.com/auth/youtubepartner\"\r\n      ],\r\n      \"has_media_upload\": false,\r\n      \"mybrandmetrics_upload_path\": null,\r\n      \"supports_media_download\": false,\r\n      \"curl\": \"curl -sS -X DELETE \\\"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/captions\\\" \\\\\\n  -H \\\"X-API-Key: $MYBRANDMETRICS_API_KEY\\\" \\\\\\n  -H \\\"Accept: application/json\\\" \\\\\\n  --url-query \\\"id=${ID}\\\"\",\r\n      \"upload_curl\": null\r\n    },\r\n    {\r\n      \"service\": \"youtube\",\r\n      \"id\": \"youtube.captions.download\",\r\n      \"resource\": \"captions\",\r\n      \"name\": \"download\",\r\n      \"http_method\": \"GET\",\r\n      \"path\": \"youtube/v3/captions/{id}\",\r\n      \"mybrandmetrics_path\": \"/discovery/youtube/captions/${ID}\",\r\n      \"flat_path\": \"youtube/v3/captions/{id}\",\r\n      \"required_parameters\": [\r\n        \"id\"\r\n      ],\r\n      \"parameters\": {\r\n        \"id\": {\r\n          \"location\": \"path\",\r\n          \"required\": true,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"tlang\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"tfmt\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"onBehalfOf\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"onBehalfOfContentOwner\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        }\r\n      },\r\n      \"request_schema\": null,\r\n      \"response_schema\": null,\r\n      \"oauth_scopes\": [\r\n        \"https://www.googleapis.com/auth/youtube.force-ssl\",\r\n        \"https://www.googleapis.com/auth/youtubepartner\"\r\n      ],\r\n      \"has_media_upload\": false,\r\n      \"mybrandmetrics_upload_path\": null,\r\n      \"supports_media_download\": true,\r\n      \"curl\": \"curl -sS -X GET \\\"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/captions/${ID}\\\" \\\\\\n  -H \\\"X-API-Key: $MYBRANDMETRICS_API_KEY\\\" \\\\\\n  -H \\\"Accept: application/json\\\"\",\r\n      \"upload_curl\": null\r\n    },\r\n    {\r\n      \"service\": \"youtube\",\r\n      \"id\": \"youtube.captions.insert\",\r\n      \"resource\": \"captions\",\r\n      \"name\": \"insert\",\r\n      \"http_method\": \"POST\",\r\n      \"path\": \"youtube/v3/captions\",\r\n      \"mybrandmetrics_path\": \"/discovery/youtube/captions\",\r\n      \"flat_path\": \"youtube/v3/captions\",\r\n      \"required_parameters\": [\r\n        \"part\"\r\n      ],\r\n      \"parameters\": {\r\n        \"sync\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"boolean\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"part\": {\r\n          \"location\": \"query\",\r\n          \"required\": true,\r\n          \"type\": \"string\",\r\n          \"repeated\": true,\r\n          \"enum\": null\r\n        },\r\n        \"onBehalfOf\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"onBehalfOfContentOwner\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        }\r\n      },\r\n      \"request_schema\": \"Caption\",\r\n      \"response_schema\": \"Caption\",\r\n      \"oauth_scopes\": [\r\n        \"https://www.googleapis.com/auth/youtube.force-ssl\",\r\n        \"https://www.googleapis.com/auth/youtubepartner\"\r\n      ],\r\n      \"has_media_upload\": true,\r\n      \"mybrandmetrics_upload_path\": \"/discovery/youtube/captions\",\r\n      \"supports_media_download\": false,\r\n      \"curl\": \"curl -sS -X POST \\\"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/captions\\\" \\\\\\n  -H \\\"X-API-Key: $MYBRANDMETRICS_API_KEY\\\" \\\\\\n  -H \\\"Accept: application/json\\\" \\\\\\n  --json \\\"@body.json\\\" \\\\\\n  --url-query \\\"part=snippet\\\"\",\r\n      \"upload_curl\": \"curl -sS -X POST \\\"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/captions\\\" \\\\\\n  -H \\\"X-API-Key: $MYBRANDMETRICS_API_KEY\\\" \\\\\\n  -H \\\"Accept: application/json\\\" \\\\\\n  -H \\\"Content-Type: ${MIME_TYPE:-application/octet-stream}\\\" \\\\\\n  --data-binary \\\"@${MEDIA_FILE}\\\" \\\\\\n  --url-query \\\"part=snippet\\\"\"\r\n    },\r\n    {\r\n      \"service\": \"youtube\",\r\n      \"id\": \"youtube.captions.list\",\r\n      \"resource\": \"captions\",\r\n      \"name\": \"list\",\r\n      \"http_method\": \"GET\",\r\n      \"path\": \"youtube/v3/captions\",\r\n      \"mybrandmetrics_path\": \"/discovery/youtube/captions\",\r\n      \"flat_path\": \"youtube/v3/captions\",\r\n      \"required_parameters\": [\r\n        \"videoId\",\r\n        \"part\"\r\n      ],\r\n      \"parameters\": {\r\n        \"id\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": true,\r\n          \"enum\": null\r\n        },\r\n        \"videoId\": {\r\n          \"location\": \"query\",\r\n          \"required\": true,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"part\": {\r\n          \"location\": \"query\",\r\n          \"required\": true,\r\n          \"type\": \"string\",\r\n          \"repeated\": true,\r\n          \"enum\": null\r\n        },\r\n        \"onBehalfOf\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"onBehalfOfContentOwner\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        }\r\n      },\r\n      \"request_schema\": null,\r\n      \"response_schema\": \"CaptionListResponse\",\r\n      \"oauth_scopes\": [\r\n        \"https://www.googleapis.com/auth/youtube.force-ssl\",\r\n        \"https://www.googleapis.com/auth/youtubepartner\"\r\n      ],\r\n      \"has_media_upload\": false,\r\n      \"mybrandmetrics_upload_path\": null,\r\n      \"supports_media_download\": false,\r\n      \"curl\": \"curl -sS -X GET \\\"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/captions\\\" \\\\\\n  -H \\\"X-API-Key: $MYBRANDMETRICS_API_KEY\\\" \\\\\\n  -H \\\"Accept: application/json\\\" \\\\\\n  --url-query \\\"part=snippet\\\" \\\\\\n  --url-query \\\"videoId=${VIDEO_ID}\\\"\",\r\n      \"upload_curl\": null\r\n    },\r\n    {\r\n      \"service\": \"youtube\",\r\n      \"id\": \"youtube.captions.update\",\r\n      \"resource\": \"captions\",\r\n      \"name\": \"update\",\r\n      \"http_method\": \"PUT\",\r\n      \"path\": \"youtube/v3/captions\",\r\n      \"mybrandmetrics_path\": \"/discovery/youtube/captions\",\r\n      \"flat_path\": \"youtube/v3/captions\",\r\n      \"required_parameters\": [\r\n        \"part\"\r\n      ],\r\n      \"parameters\": {\r\n        \"sync\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"boolean\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"part\": {\r\n          \"location\": \"query\",\r\n          \"required\": true,\r\n          \"type\": \"string\",\r\n          \"repeated\": true,\r\n          \"enum\": null\r\n        },\r\n        \"onBehalfOf\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"onBehalfOfContentOwner\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        }\r\n      },\r\n      \"request_schema\": \"Caption\",\r\n      \"response_schema\": \"Caption\",\r\n      \"oauth_scopes\": [\r\n        \"https://www.googleapis.com/auth/youtube.force-ssl\",\r\n        \"https://www.googleapis.com/auth/youtubepartner\"\r\n      ],\r\n      \"has_media_upload\": true,\r\n      \"mybrandmetrics_upload_path\": \"/discovery/youtube/captions\",\r\n      \"supports_media_download\": false,\r\n      \"curl\": \"curl -sS -X PUT \\\"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/captions\\\" \\\\\\n  -H \\\"X-API-Key: $MYBRANDMETRICS_API_KEY\\\" \\\\\\n  -H \\\"Accept: application/json\\\" \\\\\\n  --json \\\"@body.json\\\" \\\\\\n  --url-query \\\"part=snippet\\\"\",\r\n      \"upload_curl\": \"curl -sS -X PUT \\\"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/captions\\\" \\\\\\n  -H \\\"X-API-Key: $MYBRANDMETRICS_API_KEY\\\" \\\\\\n  -H \\\"Accept: application/json\\\" \\\\\\n  -H \\\"Content-Type: ${MIME_TYPE:-application/octet-stream}\\\" \\\\\\n  --data-binary \\\"@${MEDIA_FILE}\\\" \\\\\\n  --url-query \\\"part=snippet\\\"\"\r\n    },\r\n    {\r\n      \"service\": \"youtube\",\r\n      \"id\": \"youtube.channelBanners.insert\",\r\n      \"resource\": \"channelBanners\",\r\n      \"name\": \"insert\",\r\n      \"http_method\": \"POST\",\r\n      \"path\": \"youtube/v3/channelBanners/insert\",\r\n      \"mybrandmetrics_path\": \"/discovery/youtube/channelBanners/insert\",\r\n      \"flat_path\": \"youtube/v3/channelBanners/insert\",\r\n      \"required_parameters\": [],\r\n      \"parameters\": {\r\n        \"channelId\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"onBehalfOfContentOwner\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"onBehalfOfContentOwnerChannel\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        }\r\n      },\r\n      \"request_schema\": \"ChannelBannerResource\",\r\n      \"response_schema\": \"ChannelBannerResource\",\r\n      \"oauth_scopes\": [\r\n        \"https://www.googleapis.com/auth/youtube\",\r\n        \"https://www.googleapis.com/auth/youtube.force-ssl\",\r\n        \"https://www.googleapis.com/auth/youtube.upload\"\r\n      ],\r\n      \"has_media_upload\": true,\r\n      \"mybrandmetrics_upload_path\": \"/discovery/youtube/channelBanners/insert\",\r\n      \"supports_media_download\": false,\r\n      \"curl\": \"curl -sS -X POST \\\"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/channelBanners/insert\\\" \\\\\\n  -H \\\"X-API-Key: $MYBRANDMETRICS_API_KEY\\\" \\\\\\n  -H \\\"Accept: application/json\\\" \\\\\\n  --json \\\"@body.json\\\"\",\r\n      \"upload_curl\": \"curl -sS -X POST \\\"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/channelBanners/insert\\\" \\\\\\n  -H \\\"X-API-Key: $MYBRANDMETRICS_API_KEY\\\" \\\\\\n  -H \\\"Accept: application/json\\\" \\\\\\n  -H \\\"Content-Type: ${MIME_TYPE:-application/octet-stream}\\\" \\\\\\n  --data-binary \\\"@${MEDIA_FILE}\\\"\"\r\n    },\r\n    {\r\n      \"service\": \"youtube\",\r\n      \"id\": \"youtube.channelSections.delete\",\r\n      \"resource\": \"channelSections\",\r\n      \"name\": \"delete\",\r\n      \"http_method\": \"DELETE\",\r\n      \"path\": \"youtube/v3/channelSections\",\r\n      \"mybrandmetrics_path\": \"/discovery/youtube/channelSections\",\r\n      \"flat_path\": \"youtube/v3/channelSections\",\r\n      \"required_parameters\": [\r\n        \"id\"\r\n      ],\r\n      \"parameters\": {\r\n        \"id\": {\r\n          \"location\": \"query\",\r\n          \"required\": true,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"onBehalfOfContentOwner\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        }\r\n      },\r\n      \"request_schema\": null,\r\n      \"response_schema\": null,\r\n      \"oauth_scopes\": [\r\n        \"https://www.googleapis.com/auth/youtube\",\r\n        \"https://www.googleapis.com/auth/youtube.force-ssl\",\r\n        \"https://www.googleapis.com/auth/youtubepartner\"\r\n      ],\r\n      \"has_media_upload\": false,\r\n      \"mybrandmetrics_upload_path\": null,\r\n      \"supports_media_download\": false,\r\n      \"curl\": \"curl -sS -X DELETE \\\"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/channelSections\\\" \\\\\\n  -H \\\"X-API-Key: $MYBRANDMETRICS_API_KEY\\\" \\\\\\n  -H \\\"Accept: application/json\\\" \\\\\\n  --url-query \\\"id=${ID}\\\"\",\r\n      \"upload_curl\": null\r\n    },\r\n    {\r\n      \"service\": \"youtube\",\r\n      \"id\": \"youtube.channelSections.insert\",\r\n      \"resource\": \"channelSections\",\r\n      \"name\": \"insert\",\r\n      \"http_method\": \"POST\",\r\n      \"path\": \"youtube/v3/channelSections\",\r\n      \"mybrandmetrics_path\": \"/discovery/youtube/channelSections\",\r\n      \"flat_path\": \"youtube/v3/channelSections\",\r\n      \"required_parameters\": [\r\n        \"part\"\r\n      ],\r\n      \"parameters\": {\r\n        \"part\": {\r\n          \"location\": \"query\",\r\n          \"required\": true,\r\n          \"type\": \"string\",\r\n          \"repeated\": true,\r\n          \"enum\": null\r\n        },\r\n        \"onBehalfOfContentOwner\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"onBehalfOfContentOwnerChannel\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        }\r\n      },\r\n      \"request_schema\": \"ChannelSection\",\r\n      \"response_schema\": \"ChannelSection\",\r\n      \"oauth_scopes\": [\r\n        \"https://www.googleapis.com/auth/youtube\",\r\n        \"https://www.googleapis.com/auth/youtube.force-ssl\",\r\n        \"https://www.googleapis.com/auth/youtubepartner\"\r\n      ],\r\n      \"has_media_upload\": false,\r\n      \"mybrandmetrics_upload_path\": null,\r\n      \"supports_media_download\": false,\r\n      \"curl\": \"curl -sS -X POST \\\"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/channelSections\\\" \\\\\\n  -H \\\"X-API-Key: $MYBRANDMETRICS_API_KEY\\\" \\\\\\n  -H \\\"Accept: application/json\\\" \\\\\\n  --json \\\"@body.json\\\" \\\\\\n  --url-query \\\"part=snippet\\\"\",\r\n      \"upload_curl\": null\r\n    },\r\n    {\r\n      \"service\": \"youtube\",\r\n      \"id\": \"youtube.channelSections.list\",\r\n      \"resource\": \"channelSections\",\r\n      \"name\": \"list\",\r\n      \"http_method\": \"GET\",\r\n      \"path\": \"youtube/v3/channelSections\",\r\n      \"mybrandmetrics_path\": \"/discovery/youtube/channelSections\",\r\n      \"flat_path\": \"youtube/v3/channelSections\",\r\n      \"required_parameters\": [\r\n        \"part\"\r\n      ],\r\n      \"parameters\": {\r\n        \"id\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": true,\r\n          \"enum\": null\r\n        },\r\n        \"mine\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"boolean\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"channelId\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"hl\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"part\": {\r\n          \"location\": \"query\",\r\n          \"required\": true,\r\n          \"type\": \"string\",\r\n          \"repeated\": true,\r\n          \"enum\": null\r\n        },\r\n        \"onBehalfOfContentOwner\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        }\r\n      },\r\n      \"request_schema\": null,\r\n      \"response_schema\": \"ChannelSectionListResponse\",\r\n      \"oauth_scopes\": [\r\n        \"https://www.googleapis.com/auth/youtube\",\r\n        \"https://www.googleapis.com/auth/youtube.force-ssl\",\r\n        \"https://www.googleapis.com/auth/youtube.readonly\",\r\n        \"https://www.googleapis.com/auth/youtubepartner\"\r\n      ],\r\n      \"has_media_upload\": false,\r\n      \"mybrandmetrics_upload_path\": null,\r\n      \"supports_media_download\": false,\r\n      \"curl\": \"curl -sS -X GET \\\"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/channelSections\\\" \\\\\\n  -H \\\"X-API-Key: $MYBRANDMETRICS_API_KEY\\\" \\\\\\n  -H \\\"Accept: application/json\\\" \\\\\\n  --url-query \\\"part=snippet\\\"\",\r\n      \"upload_curl\": null\r\n    },\r\n    {\r\n      \"service\": \"youtube\",\r\n      \"id\": \"youtube.channelSections.update\",\r\n      \"resource\": \"channelSections\",\r\n      \"name\": \"update\",\r\n      \"http_method\": \"PUT\",\r\n      \"path\": \"youtube/v3/channelSections\",\r\n      \"mybrandmetrics_path\": \"/discovery/youtube/channelSections\",\r\n      \"flat_path\": \"youtube/v3/channelSections\",\r\n      \"required_parameters\": [\r\n        \"part\"\r\n      ],\r\n      \"parameters\": {\r\n        \"part\": {\r\n          \"location\": \"query\",\r\n          \"required\": true,\r\n          \"type\": \"string\",\r\n          \"repeated\": true,\r\n          \"enum\": null\r\n        },\r\n        \"onBehalfOfContentOwner\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        }\r\n      },\r\n      \"request_schema\": \"ChannelSection\",\r\n      \"response_schema\": \"ChannelSection\",\r\n      \"oauth_scopes\": [\r\n        \"https://www.googleapis.com/auth/youtube\",\r\n        \"https://www.googleapis.com/auth/youtube.force-ssl\",\r\n        \"https://www.googleapis.com/auth/youtubepartner\"\r\n      ],\r\n      \"has_media_upload\": false,\r\n      \"mybrandmetrics_upload_path\": null,\r\n      \"supports_media_download\": false,\r\n      \"curl\": \"curl -sS -X PUT \\\"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/channelSections\\\" \\\\\\n  -H \\\"X-API-Key: $MYBRANDMETRICS_API_KEY\\\" \\\\\\n  -H \\\"Accept: application/json\\\" \\\\\\n  --json \\\"@body.json\\\" \\\\\\n  --url-query \\\"part=snippet\\\"\",\r\n      \"upload_curl\": null\r\n    },\r\n    {\r\n      \"service\": \"youtube\",\r\n      \"id\": \"youtube.channels.list\",\r\n      \"resource\": \"channels\",\r\n      \"name\": \"list\",\r\n      \"http_method\": \"GET\",\r\n      \"path\": \"youtube/v3/channels\",\r\n      \"mybrandmetrics_path\": \"/discovery/youtube/channels\",\r\n      \"flat_path\": \"youtube/v3/channels\",\r\n      \"required_parameters\": [\r\n        \"part\"\r\n      ],\r\n      \"parameters\": {\r\n        \"mine\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"boolean\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"id\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": true,\r\n          \"enum\": null\r\n        },\r\n        \"mySubscribers\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"boolean\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"categoryId\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"managedByMe\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"boolean\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"forUsername\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"forHandle\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"hl\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"maxResults\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"integer\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"pageToken\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"part\": {\r\n          \"location\": \"query\",\r\n          \"required\": true,\r\n          \"type\": \"string\",\r\n          \"repeated\": true,\r\n          \"enum\": null\r\n        },\r\n        \"onBehalfOfContentOwner\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        }\r\n      },\r\n      \"request_schema\": null,\r\n      \"response_schema\": \"ChannelListResponse\",\r\n      \"oauth_scopes\": [\r\n        \"https://www.googleapis.com/auth/youtube\",\r\n        \"https://www.googleapis.com/auth/youtube.force-ssl\",\r\n        \"https://www.googleapis.com/auth/youtube.readonly\",\r\n        \"https://www.googleapis.com/auth/youtubepartner\",\r\n        \"https://www.googleapis.com/auth/youtubepartner-channel-audit\"\r\n      ],\r\n      \"has_media_upload\": false,\r\n      \"mybrandmetrics_upload_path\": null,\r\n      \"supports_media_download\": false,\r\n      \"curl\": \"curl -sS -X GET \\\"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/channels\\\" \\\\\\n  -H \\\"X-API-Key: $MYBRANDMETRICS_API_KEY\\\" \\\\\\n  -H \\\"Accept: application/json\\\" \\\\\\n  --url-query \\\"part=snippet\\\"\",\r\n      \"upload_curl\": null\r\n    },\r\n    {\r\n      \"service\": \"youtube\",\r\n      \"id\": \"youtube.channels.update\",\r\n      \"resource\": \"channels\",\r\n      \"name\": \"update\",\r\n      \"http_method\": \"PUT\",\r\n      \"path\": \"youtube/v3/channels\",\r\n      \"mybrandmetrics_path\": \"/discovery/youtube/channels\",\r\n      \"flat_path\": \"youtube/v3/channels\",\r\n      \"required_parameters\": [\r\n        \"part\"\r\n      ],\r\n      \"parameters\": {\r\n        \"part\": {\r\n          \"location\": \"query\",\r\n          \"required\": true,\r\n          \"type\": \"string\",\r\n          \"repeated\": true,\r\n          \"enum\": null\r\n        },\r\n        \"onBehalfOfContentOwner\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        }\r\n      },\r\n      \"request_schema\": \"Channel\",\r\n      \"response_schema\": \"Channel\",\r\n      \"oauth_scopes\": [\r\n        \"https://www.googleapis.com/auth/youtube\",\r\n        \"https://www.googleapis.com/auth/youtube.force-ssl\",\r\n        \"https://www.googleapis.com/auth/youtubepartner\"\r\n      ],\r\n      \"has_media_upload\": false,\r\n      \"mybrandmetrics_upload_path\": null,\r\n      \"supports_media_download\": false,\r\n      \"curl\": \"curl -sS -X PUT \\\"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/channels\\\" \\\\\\n  -H \\\"X-API-Key: $MYBRANDMETRICS_API_KEY\\\" \\\\\\n  -H \\\"Accept: application/json\\\" \\\\\\n  --json \\\"@body.json\\\" \\\\\\n  --url-query \\\"part=snippet\\\"\",\r\n      \"upload_curl\": null\r\n    },\r\n    {\r\n      \"service\": \"youtube\",\r\n      \"id\": \"youtube.commentThreads.insert\",\r\n      \"resource\": \"commentThreads\",\r\n      \"name\": \"insert\",\r\n      \"http_method\": \"POST\",\r\n      \"path\": \"youtube/v3/commentThreads\",\r\n      \"mybrandmetrics_path\": \"/discovery/youtube/commentThreads\",\r\n      \"flat_path\": \"youtube/v3/commentThreads\",\r\n      \"required_parameters\": [\r\n        \"part\"\r\n      ],\r\n      \"parameters\": {\r\n        \"part\": {\r\n          \"location\": \"query\",\r\n          \"required\": true,\r\n          \"type\": \"string\",\r\n          \"repeated\": true,\r\n          \"enum\": null\r\n        }\r\n      },\r\n      \"request_schema\": \"CommentThread\",\r\n      \"response_schema\": \"CommentThread\",\r\n      \"oauth_scopes\": [\r\n        \"https://www.googleapis.com/auth/youtube.force-ssl\"\r\n      ],\r\n      \"has_media_upload\": false,\r\n      \"mybrandmetrics_upload_path\": null,\r\n      \"supports_media_download\": false,\r\n      \"curl\": \"curl -sS -X POST \\\"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/commentThreads\\\" \\\\\\n  -H \\\"X-API-Key: $MYBRANDMETRICS_API_KEY\\\" \\\\\\n  -H \\\"Accept: application/json\\\" \\\\\\n  --json \\\"@body.json\\\" \\\\\\n  --url-query \\\"part=snippet\\\"\",\r\n      \"upload_curl\": null\r\n    },\r\n    {\r\n      \"service\": \"youtube\",\r\n      \"id\": \"youtube.commentThreads.list\",\r\n      \"resource\": \"commentThreads\",\r\n      \"name\": \"list\",\r\n      \"http_method\": \"GET\",\r\n      \"path\": \"youtube/v3/commentThreads\",\r\n      \"mybrandmetrics_path\": \"/discovery/youtube/commentThreads\",\r\n      \"flat_path\": \"youtube/v3/commentThreads\",\r\n      \"required_parameters\": [\r\n        \"part\"\r\n      ],\r\n      \"parameters\": {\r\n        \"id\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": true,\r\n          \"enum\": null\r\n        },\r\n        \"videoId\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"postId\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"channelId\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"allThreadsRelatedToChannelId\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"moderationStatus\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": [\r\n            \"published\",\r\n            \"heldForReview\",\r\n            \"likelySpam\",\r\n            \"rejected\"\r\n          ]\r\n        },\r\n        \"searchTerms\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"textFormat\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": [\r\n            \"textFormatUnspecified\",\r\n            \"html\",\r\n            \"plainText\"\r\n          ]\r\n        },\r\n        \"order\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": [\r\n            \"orderUnspecified\",\r\n            \"time\",\r\n            \"relevance\"\r\n          ]\r\n        },\r\n        \"maxResults\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"integer\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"pageToken\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"part\": {\r\n          \"location\": \"query\",\r\n          \"required\": true,\r\n          \"type\": \"string\",\r\n          \"repeated\": true,\r\n          \"enum\": null\r\n        }\r\n      },\r\n      \"request_schema\": null,\r\n      \"response_schema\": \"CommentThreadListResponse\",\r\n      \"oauth_scopes\": [\r\n        \"https://www.googleapis.com/auth/youtube.force-ssl\"\r\n      ],\r\n      \"has_media_upload\": false,\r\n      \"mybrandmetrics_upload_path\": null,\r\n      \"supports_media_download\": false,\r\n      \"curl\": \"curl -sS -X GET \\\"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/commentThreads\\\" \\\\\\n  -H \\\"X-API-Key: $MYBRANDMETRICS_API_KEY\\\" \\\\\\n  -H \\\"Accept: application/json\\\" \\\\\\n  --url-query \\\"part=snippet\\\"\",\r\n      \"upload_curl\": null\r\n    },\r\n    {\r\n      \"service\": \"youtube\",\r\n      \"id\": \"youtube.comments.delete\",\r\n      \"resource\": \"comments\",\r\n      \"name\": \"delete\",\r\n      \"http_method\": \"DELETE\",\r\n      \"path\": \"youtube/v3/comments\",\r\n      \"mybrandmetrics_path\": \"/discovery/youtube/comments\",\r\n      \"flat_path\": \"youtube/v3/comments\",\r\n      \"required_parameters\": [\r\n        \"id\"\r\n      ],\r\n      \"parameters\": {\r\n        \"id\": {\r\n          \"location\": \"query\",\r\n          \"required\": true,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        }\r\n      },\r\n      \"request_schema\": null,\r\n      \"response_schema\": null,\r\n      \"oauth_scopes\": [\r\n        \"https://www.googleapis.com/auth/youtube.force-ssl\"\r\n      ],\r\n      \"has_media_upload\": false,\r\n      \"mybrandmetrics_upload_path\": null,\r\n      \"supports_media_download\": false,\r\n      \"curl\": \"curl -sS -X DELETE \\\"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/comments\\\" \\\\\\n  -H \\\"X-API-Key: $MYBRANDMETRICS_API_KEY\\\" \\\\\\n  -H \\\"Accept: application/json\\\" \\\\\\n  --url-query \\\"id=${ID}\\\"\",\r\n      \"upload_curl\": null\r\n    },\r\n    {\r\n      \"service\": \"youtube\",\r\n      \"id\": \"youtube.comments.insert\",\r\n      \"resource\": \"comments\",\r\n      \"name\": \"insert\",\r\n      \"http_method\": \"POST\",\r\n      \"path\": \"youtube/v3/comments\",\r\n      \"mybrandmetrics_path\": \"/discovery/youtube/comments\",\r\n      \"flat_path\": \"youtube/v3/comments\",\r\n      \"required_parameters\": [\r\n        \"part\"\r\n      ],\r\n      \"parameters\": {\r\n        \"part\": {\r\n          \"location\": \"query\",\r\n          \"required\": true,\r\n          \"type\": \"string\",\r\n          \"repeated\": true,\r\n          \"enum\": null\r\n        }\r\n      },\r\n      \"request_schema\": \"Comment\",\r\n      \"response_schema\": \"Comment\",\r\n      \"oauth_scopes\": [\r\n        \"https://www.googleapis.com/auth/youtube.force-ssl\"\r\n      ],\r\n      \"has_media_upload\": false,\r\n      \"mybrandmetrics_upload_path\": null,\r\n      \"supports_media_download\": false,\r\n      \"curl\": \"curl -sS -X POST \\\"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/comments\\\" \\\\\\n  -H \\\"X-API-Key: $MYBRANDMETRICS_API_KEY\\\" \\\\\\n  -H \\\"Accept: application/json\\\" \\\\\\n  --json \\\"@body.json\\\" \\\\\\n  --url-query \\\"part=snippet\\\"\",\r\n      \"upload_curl\": null\r\n    },\r\n    {\r\n      \"service\": \"youtube\",\r\n      \"id\": \"youtube.comments.list\",\r\n      \"resource\": \"comments\",\r\n      \"name\": \"list\",\r\n      \"http_method\": \"GET\",\r\n      \"path\": \"youtube/v3/comments\",\r\n      \"mybrandmetrics_path\": \"/discovery/youtube/comments\",\r\n      \"flat_path\": \"youtube/v3/comments\",\r\n      \"required_parameters\": [\r\n        \"part\"\r\n      ],\r\n      \"parameters\": {\r\n        \"id\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": true,\r\n          \"enum\": null\r\n        },\r\n        \"parentId\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"textFormat\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": [\r\n            \"textFormatUnspecified\",\r\n            \"html\",\r\n            \"plainText\"\r\n          ]\r\n        },\r\n        \"maxResults\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"integer\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"pageToken\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"part\": {\r\n          \"location\": \"query\",\r\n          \"required\": true,\r\n          \"type\": \"string\",\r\n          \"repeated\": true,\r\n          \"enum\": null\r\n        }\r\n      },\r\n      \"request_schema\": null,\r\n      \"response_schema\": \"CommentListResponse\",\r\n      \"oauth_scopes\": [\r\n        \"https://www.googleapis.com/auth/youtube.force-ssl\"\r\n      ],\r\n      \"has_media_upload\": false,\r\n      \"mybrandmetrics_upload_path\": null,\r\n      \"supports_media_download\": false,\r\n      \"curl\": \"curl -sS -X GET \\\"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/comments\\\" \\\\\\n  -H \\\"X-API-Key: $MYBRANDMETRICS_API_KEY\\\" \\\\\\n  -H \\\"Accept: application/json\\\" \\\\\\n  --url-query \\\"part=snippet\\\"\",\r\n      \"upload_curl\": null\r\n    },\r\n    {\r\n      \"service\": \"youtube\",\r\n      \"id\": \"youtube.comments.markAsSpam\",\r\n      \"resource\": \"comments\",\r\n      \"name\": \"markAsSpam\",\r\n      \"http_method\": \"POST\",\r\n      \"path\": \"youtube/v3/comments/markAsSpam\",\r\n      \"mybrandmetrics_path\": \"/discovery/youtube/comments/markAsSpam\",\r\n      \"flat_path\": \"youtube/v3/comments/markAsSpam\",\r\n      \"required_parameters\": [\r\n        \"id\"\r\n      ],\r\n      \"parameters\": {\r\n        \"id\": {\r\n          \"location\": \"query\",\r\n          \"required\": true,\r\n          \"type\": \"string\",\r\n          \"repeated\": true,\r\n          \"enum\": null\r\n        }\r\n      },\r\n      \"request_schema\": null,\r\n      \"response_schema\": null,\r\n      \"oauth_scopes\": [\r\n        \"https://www.googleapis.com/auth/youtube.force-ssl\"\r\n      ],\r\n      \"has_media_upload\": false,\r\n      \"mybrandmetrics_upload_path\": null,\r\n      \"supports_media_download\": false,\r\n      \"curl\": \"curl -sS -X POST \\\"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/comments/markAsSpam\\\" \\\\\\n  -H \\\"X-API-Key: $MYBRANDMETRICS_API_KEY\\\" \\\\\\n  -H \\\"Accept: application/json\\\" \\\\\\n  --url-query \\\"id=${ID}\\\"\",\r\n      \"upload_curl\": null\r\n    },\r\n    {\r\n      \"service\": \"youtube\",\r\n      \"id\": \"youtube.comments.setModerationStatus\",\r\n      \"resource\": \"comments\",\r\n      \"name\": \"setModerationStatus\",\r\n      \"http_method\": \"POST\",\r\n      \"path\": \"youtube/v3/comments/setModerationStatus\",\r\n      \"mybrandmetrics_path\": \"/discovery/youtube/comments/setModerationStatus\",\r\n      \"flat_path\": \"youtube/v3/comments/setModerationStatus\",\r\n      \"required_parameters\": [\r\n        \"id\",\r\n        \"moderationStatus\"\r\n      ],\r\n      \"parameters\": {\r\n        \"id\": {\r\n          \"location\": \"query\",\r\n          \"required\": true,\r\n          \"type\": \"string\",\r\n          \"repeated\": true,\r\n          \"enum\": null\r\n        },\r\n        \"moderationStatus\": {\r\n          \"location\": \"query\",\r\n          \"required\": true,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": [\r\n            \"published\",\r\n            \"heldForReview\",\r\n            \"likelySpam\",\r\n            \"rejected\"\r\n          ]\r\n        },\r\n        \"banAuthor\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"boolean\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        }\r\n      },\r\n      \"request_schema\": null,\r\n      \"response_schema\": null,\r\n      \"oauth_scopes\": [\r\n        \"https://www.googleapis.com/auth/youtube.force-ssl\"\r\n      ],\r\n      \"has_media_upload\": false,\r\n      \"mybrandmetrics_upload_path\": null,\r\n      \"supports_media_download\": false,\r\n      \"curl\": \"curl -sS -X POST \\\"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/comments/setModerationStatus\\\" \\\\\\n  -H \\\"X-API-Key: $MYBRANDMETRICS_API_KEY\\\" \\\\\\n  -H \\\"Accept: application/json\\\" \\\\\\n  --url-query \\\"id=${ID}\\\" \\\\\\n  --url-query \\\"moderationStatus=published\\\"\",\r\n      \"upload_curl\": null\r\n    },\r\n    {\r\n      \"service\": \"youtube\",\r\n      \"id\": \"youtube.comments.update\",\r\n      \"resource\": \"comments\",\r\n      \"name\": \"update\",\r\n      \"http_method\": \"PUT\",\r\n      \"path\": \"youtube/v3/comments\",\r\n      \"mybrandmetrics_path\": \"/discovery/youtube/comments\",\r\n      \"flat_path\": \"youtube/v3/comments\",\r\n      \"required_parameters\": [\r\n        \"part\"\r\n      ],\r\n      \"parameters\": {\r\n        \"part\": {\r\n          \"location\": \"query\",\r\n          \"required\": true,\r\n          \"type\": \"string\",\r\n          \"repeated\": true,\r\n          \"enum\": null\r\n        }\r\n      },\r\n      \"request_schema\": \"Comment\",\r\n      \"response_schema\": \"Comment\",\r\n      \"oauth_scopes\": [\r\n        \"https://www.googleapis.com/auth/youtube.force-ssl\"\r\n      ],\r\n      \"has_media_upload\": false,\r\n      \"mybrandmetrics_upload_path\": null,\r\n      \"supports_media_download\": false,\r\n      \"curl\": \"curl -sS -X PUT \\\"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/comments\\\" \\\\\\n  -H \\\"X-API-Key: $MYBRANDMETRICS_API_KEY\\\" \\\\\\n  -H \\\"Accept: application/json\\\" \\\\\\n  --json \\\"@body.json\\\" \\\\\\n  --url-query \\\"part=snippet\\\"\",\r\n      \"upload_curl\": null\r\n    },\r\n    {\r\n      \"service\": \"youtube\",\r\n      \"id\": \"youtube.i18nLanguages.list\",\r\n      \"resource\": \"i18nLanguages\",\r\n      \"name\": \"list\",\r\n      \"http_method\": \"GET\",\r\n      \"path\": \"youtube/v3/i18nLanguages\",\r\n      \"mybrandmetrics_path\": \"/discovery/youtube/i18nLanguages\",\r\n      \"flat_path\": \"youtube/v3/i18nLanguages\",\r\n      \"required_parameters\": [\r\n        \"part\"\r\n      ],\r\n      \"parameters\": {\r\n        \"hl\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"part\": {\r\n          \"location\": \"query\",\r\n          \"required\": true,\r\n          \"type\": \"string\",\r\n          \"repeated\": true,\r\n          \"enum\": null\r\n        }\r\n      },\r\n      \"request_schema\": null,\r\n      \"response_schema\": \"I18nLanguageListResponse\",\r\n      \"oauth_scopes\": [\r\n        \"https://www.googleapis.com/auth/youtube\",\r\n        \"https://www.googleapis.com/auth/youtube.force-ssl\",\r\n        \"https://www.googleapis.com/auth/youtube.readonly\",\r\n        \"https://www.googleapis.com/auth/youtubepartner\"\r\n      ],\r\n      \"has_media_upload\": false,\r\n      \"mybrandmetrics_upload_path\": null,\r\n      \"supports_media_download\": false,\r\n      \"curl\": \"curl -sS -X GET \\\"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/i18nLanguages\\\" \\\\\\n  -H \\\"X-API-Key: $MYBRANDMETRICS_API_KEY\\\" \\\\\\n  -H \\\"Accept: application/json\\\" \\\\\\n  --url-query \\\"part=snippet\\\"\",\r\n      \"upload_curl\": null\r\n    },\r\n    {\r\n      \"service\": \"youtube\",\r\n      \"id\": \"youtube.i18nRegions.list\",\r\n      \"resource\": \"i18nRegions\",\r\n      \"name\": \"list\",\r\n      \"http_method\": \"GET\",\r\n      \"path\": \"youtube/v3/i18nRegions\",\r\n      \"mybrandmetrics_path\": \"/discovery/youtube/i18nRegions\",\r\n      \"flat_path\": \"youtube/v3/i18nRegions\",\r\n      \"required_parameters\": [\r\n        \"part\"\r\n      ],\r\n      \"parameters\": {\r\n        \"hl\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"part\": {\r\n          \"location\": \"query\",\r\n          \"required\": true,\r\n          \"type\": \"string\",\r\n          \"repeated\": true,\r\n          \"enum\": null\r\n        }\r\n      },\r\n      \"request_schema\": null,\r\n      \"response_schema\": \"I18nRegionListResponse\",\r\n      \"oauth_scopes\": [\r\n        \"https://www.googleapis.com/auth/youtube\",\r\n        \"https://www.googleapis.com/auth/youtube.force-ssl\",\r\n        \"https://www.googleapis.com/auth/youtube.readonly\",\r\n        \"https://www.googleapis.com/auth/youtubepartner\"\r\n      ],\r\n      \"has_media_upload\": false,\r\n      \"mybrandmetrics_upload_path\": null,\r\n      \"supports_media_download\": false,\r\n      \"curl\": \"curl -sS -X GET \\\"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/i18nRegions\\\" \\\\\\n  -H \\\"X-API-Key: $MYBRANDMETRICS_API_KEY\\\" \\\\\\n  -H \\\"Accept: application/json\\\" \\\\\\n  --url-query \\\"part=snippet\\\"\",\r\n      \"upload_curl\": null\r\n    },\r\n    {\r\n      \"service\": \"youtube\",\r\n      \"id\": \"youtube.liveBroadcasts.bind\",\r\n      \"resource\": \"liveBroadcasts\",\r\n      \"name\": \"bind\",\r\n      \"http_method\": \"POST\",\r\n      \"path\": \"youtube/v3/liveBroadcasts/bind\",\r\n      \"mybrandmetrics_path\": \"/discovery/youtube/liveBroadcasts/bind\",\r\n      \"flat_path\": \"youtube/v3/liveBroadcasts/bind\",\r\n      \"required_parameters\": [\r\n        \"id\",\r\n        \"part\"\r\n      ],\r\n      \"parameters\": {\r\n        \"id\": {\r\n          \"location\": \"query\",\r\n          \"required\": true,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"streamId\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"part\": {\r\n          \"location\": \"query\",\r\n          \"required\": true,\r\n          \"type\": \"string\",\r\n          \"repeated\": true,\r\n          \"enum\": null\r\n        },\r\n        \"onBehalfOfContentOwner\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"onBehalfOfContentOwnerChannel\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        }\r\n      },\r\n      \"request_schema\": null,\r\n      \"response_schema\": \"LiveBroadcast\",\r\n      \"oauth_scopes\": [\r\n        \"https://www.googleapis.com/auth/youtube\",\r\n        \"https://www.googleapis.com/auth/youtube.force-ssl\"\r\n      ],\r\n      \"has_media_upload\": false,\r\n      \"mybrandmetrics_upload_path\": null,\r\n      \"supports_media_download\": false,\r\n      \"curl\": \"curl -sS -X POST \\\"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/liveBroadcasts/bind\\\" \\\\\\n  -H \\\"X-API-Key: $MYBRANDMETRICS_API_KEY\\\" \\\\\\n  -H \\\"Accept: application/json\\\" \\\\\\n  --url-query \\\"id=${ID}\\\" \\\\\\n  --url-query \\\"part=snippet\\\"\",\r\n      \"upload_curl\": null\r\n    },\r\n    {\r\n      \"service\": \"youtube\",\r\n      \"id\": \"youtube.liveBroadcasts.delete\",\r\n      \"resource\": \"liveBroadcasts\",\r\n      \"name\": \"delete\",\r\n      \"http_method\": \"DELETE\",\r\n      \"path\": \"youtube/v3/liveBroadcasts\",\r\n      \"mybrandmetrics_path\": \"/discovery/youtube/liveBroadcasts\",\r\n      \"flat_path\": \"youtube/v3/liveBroadcasts\",\r\n      \"required_parameters\": [\r\n        \"id\"\r\n      ],\r\n      \"parameters\": {\r\n        \"id\": {\r\n          \"location\": \"query\",\r\n          \"required\": true,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"onBehalfOfContentOwner\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"onBehalfOfContentOwnerChannel\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        }\r\n      },\r\n      \"request_schema\": null,\r\n      \"response_schema\": null,\r\n      \"oauth_scopes\": [\r\n        \"https://www.googleapis.com/auth/youtube\",\r\n        \"https://www.googleapis.com/auth/youtube.force-ssl\"\r\n      ],\r\n      \"has_media_upload\": false,\r\n      \"mybrandmetrics_upload_path\": null,\r\n      \"supports_media_download\": false,\r\n      \"curl\": \"curl -sS -X DELETE \\\"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/liveBroadcasts\\\" \\\\\\n  -H \\\"X-API-Key: $MYBRANDMETRICS_API_KEY\\\" \\\\\\n  -H \\\"Accept: application/json\\\" \\\\\\n  --url-query \\\"id=${ID}\\\"\",\r\n      \"upload_curl\": null\r\n    },\r\n    {\r\n      \"service\": \"youtube\",\r\n      \"id\": \"youtube.liveBroadcasts.insert\",\r\n      \"resource\": \"liveBroadcasts\",\r\n      \"name\": \"insert\",\r\n      \"http_method\": \"POST\",\r\n      \"path\": \"youtube/v3/liveBroadcasts\",\r\n      \"mybrandmetrics_path\": \"/discovery/youtube/liveBroadcasts\",\r\n      \"flat_path\": \"youtube/v3/liveBroadcasts\",\r\n      \"required_parameters\": [\r\n        \"part\"\r\n      ],\r\n      \"parameters\": {\r\n        \"part\": {\r\n          \"location\": \"query\",\r\n          \"required\": true,\r\n          \"type\": \"string\",\r\n          \"repeated\": true,\r\n          \"enum\": null\r\n        },\r\n        \"onBehalfOfContentOwner\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"onBehalfOfContentOwnerChannel\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        }\r\n      },\r\n      \"request_schema\": \"LiveBroadcast\",\r\n      \"response_schema\": \"LiveBroadcast\",\r\n      \"oauth_scopes\": [\r\n        \"https://www.googleapis.com/auth/youtube\",\r\n        \"https://www.googleapis.com/auth/youtube.force-ssl\"\r\n      ],\r\n      \"has_media_upload\": false,\r\n      \"mybrandmetrics_upload_path\": null,\r\n      \"supp\n\nFile v1.2.4:references/curl.md\n\n# Curl Usage\n\n## Authentication\n\nUse a MyBrandMetrics API key in the `X-API-Key` header.\n\n```bash\nexport MYBRANDMETRICS_API_KEY=\"YOUR_API_KEY\"\nexport MYBRANDMETRICS_API_BASE_URL=\"https://api.mybrandmetrics.com\"\n```\n\nSimple example:\n\n```bash\ncurl -H \"X-API-Key: YOUR_API_KEY\" \"https://api.mybrandmetrics.com/discovery/youtube/channels?part=snippet,contentDetails,statistics&mine=true\"\n```\n\nEnvironment variable example:\n\n```bash\ncurl -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/channels?part=snippet,contentDetails,statistics&mine=true\"\n```\n\n## Discovery API\n\nRoute shape:\n\n```text\n/discovery/{service}/{path}\n```\n\nSupported service names:\n\n- `youtube`\n- `youtubeAnalytics`\n- `youtubeReporting`\n\n## Query Parameters\n\nPrefer `--url-query` for query strings. It appends parameters to the URL\nwithout changing the request body, so it works for GET, POST, PATCH, PUT, and\nDELETE.\n\n```bash\ncurl -sS \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/channels\" \\\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\n  --url-query \"part=snippet,statistics\" \\\n  --url-query \"mine=true\"\n```\n\nThe method references list each parameter's location. Path parameters appear\ninside the URL path. Query parameters should be passed with `--url-query`.\n\n## JSON Bodies\n\nFor methods with a request schema, place the JSON request body in `body.json`\nand call:\n\n```bash\ncurl -sS -X POST \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/playlists\" \\\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\n  --json \"@body.json\" \\\n  --url-query \"part=snippet,status\"\n```\n\nIf the local curl version does not support `--json`, use:\n\n```bash\n-H \"Content-Type: application/json\" --data-binary \"@body.json\"\n```\n\n## Uploads\n\nMethods with media upload support include upload examples in the service\nreferences. Set:\n\n```bash\nexport MEDIA_FILE=\"video.mp4\"\nexport MIME_TYPE=\"video/mp4\"\n```\n\nFor multipart uploads, use `-F` and explicitly define the metadata content\ntype. For resumable uploads, include upload content headers and then upload\nbytes to the resumable upload session URL when the API returns one.\n\n## Downloads\n\nMethods marked as supporting media download may require `alt=media`. Save\nbinary output with `-o`.\n\n## Error Handling\n\nUse `-fS` when scripts should fail on non-2xx responses, or capture both body\nand status:\n\n```bash\ncurl -sS -w \"\\n%{http_code}\\n\" -o response.json \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/channels\"\n```\n\nErrors generally return a JSON object with an `error` field. If the connected\nYouTube account needs more access, ask the user to reconnect YouTube in\nMyBrandMetrics.\n\nFile v1.2.4:references/index.md\n\n# YouTube Unified API References\n\nThis reference set is generated from YouTube discovery documents and adapted for\ncurl-based calls through the MyBrandMetrics Discovery API.\n\n## Load Order\n\n1. Read `curl.md` for MyBrandMetrics API key authentication, request\n   construction, uploads, downloads, and error handling.\n2. Read `mybrandmetrics-api.md` when selecting a connected YouTube account or\n   building Discovery API routes.\n3. Read the relevant service file under `services/` for endpoint-specific\n   parameters and curl examples.\n4. Use `catalog.json` for programmatic lookup or tool schema generation.\n\n## Coverage\n\n- YouTube Data API v3\n- YouTube Analytics API v2\n- YouTube Reporting API v1\n- 99 generated methods\n- Upload and download patterns where supported\n\nRaw discovery snapshots are not included in this published package.\n\nFile v1.2.4:references/mybrandmetrics-api.md\n\n# MyBrandMetrics Discovery API\n\nUse the MyBrandMetrics Discovery API when the user provides a MyBrandMetrics API\nkey and wants to call YouTube Data, Analytics, or Reporting endpoints.\n\n## Base URL And Header\n\n```bash\nexport MYBRANDMETRICS_API_BASE_URL=\"https://api.mybrandmetrics.com\"\nexport MYBRANDMETRICS_API_KEY=\"YOUR_API_KEY\"\n```\n\nSend:\n\n```bash\n-H \"X-API-Key: $MYBRANDMETRICS_API_KEY\"\n```\n\n## Route Mapping\n\nRoute:\n\n```text\n/discovery/{service}/{path}\n```\n\nServices:\n\n| Service | Google API | Common prefix omitted in generated examples |\n| --- | --- | --- |\n| `youtube` | YouTube Data API v3 | `youtube/v3/` |\n| `youtubeAnalytics` | YouTube Analytics API v2 | `v2/` |\n| `youtubeReporting` | YouTube Reporting API v1 | `v1/` |\n\nExamples:\n\n```text\n/discovery/youtube/channels\n/discovery/youtube/videos\n/discovery/youtubeAnalytics/reports\n/discovery/youtubeReporting/jobs\n```\n\n## Account Selection\n\nSome API keys may have more than one connected YouTube account. If\nMyBrandMetrics indicates account selection is required, ask the user which\naccount to use. Present only non-sensitive account labels such as display name,\nemail, and connection ID.\n\nUse the selected account identifier in the Discovery API request, for example:\n\n```bash\ncurl -H \"X-API-Key: YOUR_API_KEY\" \"https://api.mybrandmetrics.com/discovery/youtube/channels?part=snippet,contentDetails,statistics&mine=true&oauth_connection_id=42\"\n```\n\nSupported selector query parameters may include:\n\n```text\noauth_connection_id\ngoogle_sub\nemail\nconnection_id\naccount_id\nchannel_id\n```\n\n## Scope Behavior\n\nThe target user must have a connected YouTube account with the required\npermissions for the task.\n\n- Data API: read, write, or upload permissions depending on the endpoint.\n- Analytics API: analytics read permissions.\n- Reporting API: reporting read permissions.\n\nIf permissions are missing, ask the user to reconnect YouTube in MyBrandMetrics\nwith the required access.\n\nFile v1.2.4:references/services/youtube-analytics-v2.md\n\n# YouTube Analytics API v2\r\n\r\nDiscovery source: `https://youtubeanalytics.googleapis.com/$discovery/rest?version=v2`\r\nPublic API base URL: `https://api.mybrandmetrics.com`\r\nMethods: 8\r\nSchemas: 12\r\n\r\n## Method Index\r\n\r\n### groupItems\r\n- `youtubeAnalytics.groupItems.delete` - `DELETE /v2/groupItems`\r\n- `youtubeAnalytics.groupItems.insert` - `POST /v2/groupItems`\r\n- `youtubeAnalytics.groupItems.list` - `GET /v2/groupItems`\r\n\r\n### groups\r\n- `youtubeAnalytics.groups.delete` - `DELETE /v2/groups`\r\n- `youtubeAnalytics.groups.insert` - `POST /v2/groups`\r\n- `youtubeAnalytics.groups.list` - `GET /v2/groups`\r\n- `youtubeAnalytics.groups.update` - `PUT /v2/groups`\r\n\r\n### reports\r\n- `youtubeAnalytics.reports.query` - `GET /v2/reports`\r\n\r\n## Method Reference\r\n\r\n### `youtubeAnalytics.groupItems.delete`\r\n\r\n- Resource: `groupItems`\r\n- HTTP: `DELETE /v2/groupItems`\r\n- Required parameters: none\r\n- OAuth scopes: `https://www.googleapis.com/auth/youtube`, `https://www.googleapis.com/auth/youtube.readonly`, `https://www.googleapis.com/auth/youtubepartner`, `https://www.googleapis.com/auth/yt-analytics-monetary.readonly`, `https://www.googleapis.com/auth/yt-analytics.readonly`\r\n- Request schema: `none`\r\n- Response schema: `EmptyResponse`\r\n\r\nRemoves an item from a group.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `onBehalfOfContentOwner` | `query` | no | `string` | This parameter can only be used in a properly authorized request. **Note:** This parameter is intended exclusively for YouTube content partners that own and manage many different YouTube channels. The `onBehalfOfConte... |\r\n| `id` | `query` | no | `string` | The `id` parameter specifies the YouTube group item ID of the group item that is being deleted. |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X DELETE \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtubeAnalytics/groupItems\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\"\r\n```\r\n\r\n### `youtubeAnalytics.groupItems.insert`\r\n\r\n- Resource: `groupItems`\r\n- HTTP: `POST /v2/groupItems`\r\n- Required parameters: none\r\n- OAuth scopes: `https://www.googleapis.com/auth/youtube`, `https://www.googleapis.com/auth/youtube.readonly`, `https://www.googleapis.com/auth/youtubepartner`, `https://www.googleapis.com/auth/yt-analytics-monetary.readonly`, `https://www.googleapis.com/auth/yt-analytics.readonly`\r\n- Request schema: `GroupItem`\r\n- Response schema: `GroupItem`\r\n\r\nCreates a group item.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `onBehalfOfContentOwner` | `query` | no | `string` | This parameter can only be used in a properly authorized request. **Note:** This parameter is intended exclusively for YouTube content partners that own and manage many different YouTube channels. The `onBehalfOfConte... |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X POST \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtubeAnalytics/groupItems\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\" \\\r\n  --json \"@body.json\"\r\n```\r\n\r\n### `youtubeAnalytics.groupItems.list`\r\n\r\n- Resource: `groupItems`\r\n- HTTP: `GET /v2/groupItems`\r\n- Required parameters: none\r\n- OAuth scopes: `https://www.googleapis.com/auth/youtube`, `https://www.googleapis.com/auth/youtube.readonly`, `https://www.googleapis.com/auth/youtubepartner`, `https://www.googleapis.com/auth/yt-analytics-monetary.readonly`, `https://www.googleapis.com/auth/yt-analytics.readonly`\r\n- Request schema: `none`\r\n- Response schema: `ListGroupItemsResponse`\r\n\r\nReturns a collection of group items that match the API request parameters.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `onBehalfOfContentOwner` | `query` | no | `string` | This parameter can only be used in a properly authorized request. **Note:** This parameter is intended exclusively for YouTube content partners that own and manage many different YouTube channels. The `onBehalfOfConte... |\r\n| `groupId` | `query` | no | `string` | The `groupId` parameter specifies the unique ID of the group for which you want to retrieve group items. |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X GET \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtubeAnalytics/groupItems\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\"\r\n```\r\n\r\n### `youtubeAnalytics.groups.delete`\r\n\r\n- Resource: `groups`\r\n- HTTP: `DELETE /v2/groups`\r\n- Required parameters: none\r\n- OAuth scopes: `https://www.googleapis.com/auth/youtube`, `https://www.googleapis.com/auth/youtube.readonly`, `https://www.googleapis.com/auth/youtubepartner`, `https://www.googleapis.com/auth/yt-analytics-monetary.readonly`, `https://www.googleapis.com/auth/yt-analytics.readonly`\r\n- Request schema: `none`\r\n- Response schema: `EmptyResponse`\r\n\r\nDeletes a group.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `onBehalfOfContentOwner` | `query` | no | `string` | This parameter can only be used in a properly authorized request. **Note:** This parameter is intended exclusively for YouTube content partners that own and manage many different YouTube channels. The `onBehalfOfConte... |\r\n| `id` | `query` | no | `string` | The `id` parameter specifies the YouTube group ID of the group that is being deleted. |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X DELETE \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtubeAnalytics/groups\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\"\r\n```\r\n\r\n### `youtubeAnalytics.groups.insert`\r\n\r\n- Resource: `groups`\r\n- HTTP: `POST /v2/groups`\r\n- Required parameters: none\r\n- OAuth scopes: `https://www.googleapis.com/auth/youtube`, `https://www.googleapis.com/auth/youtube.readonly`, `https://www.googleapis.com/auth/youtubepartner`, `https://www.googleapis.com/auth/yt-analytics-monetary.readonly`, `https://www.googleapis.com/auth/yt-analytics.readonly`\r\n- Request schema: `Group`\r\n- Response schema: `Group`\r\n\r\nCreates a group.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `onBehalfOfContentOwner` | `query` | no | `string` | This parameter can only be used in a properly authorized request. **Note:** This parameter is intended exclusively for YouTube content partners that own and manage many different YouTube channels. The `onBehalfOfConte... |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X POST \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtubeAnalytics/groups\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\" \\\r\n  --json \"@body.json\"\r\n```\r\n\r\n### `youtubeAnalytics.groups.list`\r\n\r\n- Resource: `groups`\r\n- HTTP: `GET /v2/groups`\r\n- Required parameters: none\r\n- OAuth scopes: `https://www.googleapis.com/auth/youtube`, `https://www.googleapis.com/auth/youtube.readonly`, `https://www.googleapis.com/auth/youtubepartner`, `https://www.googleapis.com/auth/yt-analytics-monetary.readonly`, `https://www.googleapis.com/auth/yt-analytics.readonly`\r\n- Request schema: `none`\r\n- Response schema: `ListGroupsResponse`\r\n\r\nReturns a collection of groups that match the API request parameters. For example, you can retrieve all groups that the authenticated user owns, or you can retrieve one or more groups by their unique IDs.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `onBehalfOfContentOwner` | `query` | no | `string` | This parameter can only be used in a properly authorized request. **Note:** This parameter is intended exclusively for YouTube content partners that own and manage many different YouTube channels. The `onBehalfOfConte... |\r\n| `id` | `query` | no | `string` | The `id` parameter specifies a comma-separated list of the YouTube group ID(s) for the resource(s) that are being retrieved. Each group must be owned by the authenticated user. In a `group` resource, the `id` property... |\r\n| `mine` | `query` | no | `boolean` | This parameter can only be used in a properly authorized request. Set this parameter's value to true to retrieve all groups owned by the authenticated user. |\r\n| `pageToken` | `query` | no | `string` | The `pageToken` parameter identifies a specific page in the result set that should be returned. In an API response, the `nextPageToken` property identifies the next page that can be retrieved. |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X GET \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtubeAnalytics/groups\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\"\r\n```\r\n\r\n### `youtubeAnalytics.groups.update`\r\n\r\n- Resource: `groups`\r\n- HTTP: `PUT /v2/groups`\r\n- Required parameters: none\r\n- OAuth scopes: `https://www.googleapis.com/auth/youtube`, `https://www.googleapis.com/auth/youtube.readonly`, `https://www.googleapis.com/auth/youtubepartner`, `https://www.googleapis.com/auth/yt-analytics-monetary.readonly`, `https://www.googleapis.com/auth/yt-analytics.readonly`\r\n- Request schema: `Group`\r\n- Response schema: `Group`\r\n\r\nModifies a group. For example, you could change a group's title.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `onBehalfOfContentOwner` | `query` | no | `string` | This parameter can only be used in a properly authorized request. **Note:** This parameter is intended exclusively for YouTube content partners that own and manage many different YouTube channels. The `onBehalfOfConte... |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X PUT \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtubeAnalytics/groups\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\" \\\r\n  --json \"@body.json\"\r\n```\r\n\r\n### `youtubeAnalytics.reports.query`\r\n\r\n- Resource: `reports`\r\n- HTTP: `GET /v2/reports`\r\n- Required parameters: none\r\n- OAuth scopes: `https://www.googleapis.com/auth/youtube`, `https://www.googleapis.com/auth/youtube.readonly`, `https://www.googleapis.com/auth/youtubepartner`, `https://www.googleapis.com/auth/yt-analytics-monetary.readonly`, `https://www.googleapis.com/auth/yt-analytics.readonly`\r\n- Request schema: `none`\r\n- Response schema: `QueryResponse`\r\n\r\nRetrieve your YouTube Analytics reports.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `ids` | `query` | no | `string` | Identifies the YouTube channel or content owner for which you are retrieving YouTube Analytics data. - To request data for a YouTube user, set the `ids` parameter value to `channel==CHANNEL_ID`, where `CHANNEL_ID` spe... |\r\n| `startDate` | `query` | no | `string` | The start date for fetching YouTube Analytics data. The value should be in `YYYY-MM-DD` format. required: true, pattern: \"[0-9]{4}-[0-9]{2}-[0-9]{2} |\r\n| `endDate` | `query` | no | `string` | The end date for fetching YouTube Analytics data. The value should be in `YYYY-MM-DD` format. required: true, pattern: [0-9]{4}-[0-9]{2}-[0-9]{2} |\r\n| `metrics` | `query` | no | `string` | A comma-separated list of YouTube Analytics metrics, such as `views` or `likes,dislikes`. See the [Available Reports](/youtube/analytics/v2/available_reports) document for a list of the reports that you can retrieve a... |\r\n| `dimensions` | `query` | no | `string` | A comma-separated list of YouTube Analytics dimensions, such as `views` or `ageGroup,gender`. See the [Available Reports](/youtube/analytics/v2/available_reports) document for a list of the reports that you can retrie... |\r\n| `currency` | `query` | no | `string` | The currency to which financial metrics should be converted. The default is US Dollar (USD). If the result contains no financial metrics, this flag will be ignored. Responds with an error if the specified currency is... |\r\n| `filters` | `query` | no | `string` | A list of filters that should be applied when retrieving YouTube Analytics data. The [Available Reports](/youtube/analytics/v2/available_reports) document identifies the dimensions that can be used to filter each repo... |\r\n| `includeHistoricalChannelData` | `query` | no | `boolean` | If set to true historical data (i.e. channel data from before the linking of the channel to the content owner) will be retrieved.\", |\r\n| `maxResults` | `query` | no | `integer` | The maximum number of rows to include in the response.\", minValue: 1 |\r\n| `sort` | `query` | no | `string` | A comma-separated list of dimensions or metrics that determine the sort order for YouTube Analytics data. By default the sort order is ascending. The '`-`' prefix causes descending sort order.\", pattern: [-0-9a-zA-Z,]+ |\r\n| `startIndex` | `query` | no | `integer` | An index of the first entity to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter (one-based, inclusive).\", minValue: 1 |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X GET \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtubeAnalytics/reports\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\" \\\r\n  --url-query \"ids=channel==MINE\" \\\r\n  --url-query \"startDate=2026-01-01\" \\\r\n  --url-query \"endDate=2026-01-31\" \\\r\n  --url-query \"metrics=views,estimatedMinutesWatched\"\r\n```\r\n\r\n## Schemas\r\n\r\n| Schema | Type | Description |\r\n| --- | --- | --- |\r\n| `EmptyResponse` | `object` | Empty response. |\r\n| `ErrorProto` | `object` | Describes one specific error. |\r\n| `Errors` | `object` | Request Error information. The presence of an error field signals that the operation has failed. |\r\n| `Group` | `object` | A group. |\r\n| `GroupContentDetails` | `object` | A group's content details. |\r\n| `GroupItem` | `object` | A group item. |\r\n| `GroupItemResource` | `object` |  |\r\n| `GroupSnippet` | `object` | A group snippet. |\r\n| `ListGroupItemsResponse` | `object` | Response message for GroupsService.ListGroupItems. |\r\n| `ListGroupsResponse` | `object` | Response message for GroupsService.ListGroups. |\r\n| `QueryResponse` | `object` | Response message for TargetedQueriesService.Query. |\r\n| `ResultTableColumnHeader` | `object` | The description of a column of the result table. |\n\nFile v1.2.4:references/services/youtube-data-v3.md\n\n# YouTube Data API v3\r\n\r\nDiscovery source: `https://youtube.googleapis.com/$discovery/rest?version=v3`\r\nPublic API base URL: `https://api.mybrandmetrics.com`\r\nMethods: 83\r\nSchemas: 199\r\n\r\n## Method Index\r\n\r\n### abuseReports\r\n- `youtube.abuseReports.insert` - `POST /youtube/v3/abuseReports`\r\n\r\n### activities\r\n- `youtube.activities.list` - `GET /youtube/v3/activities`\r\n\r\n### captions\r\n- `youtube.captions.delete` - `DELETE /youtube/v3/captions`\r\n- `youtube.captions.download` - `GET /youtube/v3/captions/{id}`\r\n- `youtube.captions.insert` - `POST /youtube/v3/captions`\r\n- `youtube.captions.list` - `GET /youtube/v3/captions`\r\n- `youtube.captions.update` - `PUT /youtube/v3/captions`\r\n\r\n### channelBanners\r\n- `youtube.channelBanners.insert` - `POST /youtube/v3/channelBanners/insert`\r\n\r\n### channelSections\r\n- `youtube.channelSections.delete` - `DELETE /youtube/v3/channelSections`\r\n- `youtube.channelSections.insert` - `POST /youtube/v3/channelSections`\r\n- `youtube.channelSections.list` - `GET /youtube/v3/channelSections`\r\n- `youtube.channelSections.update` - `PUT /youtube/v3/channelSections`\r\n\r\n### channels\r\n- `youtube.channels.list` - `GET /youtube/v3/channels`\r\n- `youtube.channels.update` - `PUT /youtube/v3/channels`\r\n\r\n### commentThreads\r\n- `youtube.commentThreads.insert` - `POST /youtube/v3/commentThreads`\r\n- `youtube.commentThreads.list` - `GET /youtube/v3/commentThreads`\r\n\r\n### comments\r\n- `youtube.comments.delete` - `DELETE /youtube/v3/comments`\r\n- `youtube.comments.insert` - `POST /youtube/v3/comments`\r\n- `youtube.comments.list` - `GET /youtube/v3/comments`\r\n- `youtube.comments.markAsSpam` - `POST /youtube/v3/comments/markAsSpam`\r\n- `youtube.comments.setModerationStatus` - `POST /youtube/v3/comments/setModerationStatus`\r\n- `youtube.comments.update` - `PUT /youtube/v3/comments`\r\n\r\n### i18nLanguages\r\n- `youtube.i18nLanguages.list` - `GET /youtube/v3/i18nLanguages`\r\n\r\n### i18nRegions\r\n- `youtube.i18nRegions.list` - `GET /youtube/v3/i18nRegions`\r\n\r\n### liveBroadcasts\r\n- `youtube.liveBroadcasts.bind` - `POST /youtube/v3/liveBroadcasts/bind`\r\n- `youtube.liveBroadcasts.delete` - `DELETE /youtube/v3/liveBroadcasts`\r\n- `youtube.liveBroadcasts.insert` - `POST /youtube/v3/liveBroadcasts`\r\n- `youtube.liveBroadcasts.insertCuepoint` - `POST /youtube/v3/liveBroadcasts/cuepoint`\r\n- `youtube.liveBroadcasts.list` - `GET /youtube/v3/liveBroadcasts`\r\n- `youtube.liveBroadcasts.transition` - `POST /youtube/v3/liveBroadcasts/transition`\r\n- `youtube.liveBroadcasts.update` - `PUT /youtube/v3/liveBroadcasts`\r\n\r\n### liveChatBans\r\n- `youtube.liveChatBans.delete` - `DELETE /youtube/v3/liveChat/bans`\r\n- `youtube.liveChatBans.insert` - `POST /youtube/v3/liveChat/bans`\r\n\r\n### liveChatMessages\r\n- `youtube.liveChatMessages.delete` - `DELETE /youtube/v3/liveChat/messages`\r\n- `youtube.liveChatMessages.insert` - `POST /youtube/v3/liveChat/messages`\r\n- `youtube.liveChatMessages.list` - `GET /youtube/v3/liveChat/messages`\r\n- `youtube.liveChatMessages.transition` - `POST /youtube/v3/liveChat/messages/transition`\r\n\r\n### liveChatModerators\r\n- `youtube.liveChatModerators.delete` - `DELETE /youtube/v3/liveChat/moderators`\r\n- `youtube.liveChatModerators.insert` - `POST /youtube/v3/liveChat/moderators`\r\n- `youtube.liveChatModerators.list` - `GET /youtube/v3/liveChat/moderators`\r\n\r\n### liveStreams\r\n- `youtube.liveStreams.delete` - `DELETE /youtube/v3/liveStreams`\r\n- `youtube.liveStreams.insert` - `POST /youtube/v3/liveStreams`\r\n- `youtube.liveStreams.list` - `GET /youtube/v3/liveStreams`\r\n- `youtube.liveStreams.update` - `PUT /youtube/v3/liveStreams`\r\n\r\n### members\r\n- `youtube.members.list` - `GET /youtube/v3/members`\r\n\r\n### membershipsLevels\r\n- `youtube.membershipsLevels.list` - `GET /youtube/v3/membershipsLevels`\r\n\r\n### playlistImages\r\n- `youtube.playlistImages.delete` - `DELETE /youtube/v3/playlistImages`\r\n- `youtube.playlistImages.insert` - `POST /youtube/v3/playlistImages`\r\n- `youtube.playlistImages.list` - `GET /youtube/v3/playlistImages`\r\n- `youtube.playlistImages.update` - `PUT /youtube/v3/playlistImages`\r\n\r\n### playlistItems\r\n- `youtube.playlistItems.delete` - `DELETE /youtube/v3/playlistItems`\r\n- `youtube.playlistItems.insert` - `POST /youtube/v3/playlistItems`\r\n- `youtube.playlistItems.list` - `GET /youtube/v3/playlistItems`\r\n- `youtube.playlistItems.update` - `PUT /youtube/v3/playlistItems`\r\n\r\n### playlists\r\n- `youtube.playlists.delete` - `DELETE /youtube/v3/playlists`\r\n- `youtube.playlists.insert` - `POST /youtube/v3/playlists`\r\n- `youtube.playlists.list` - `GET /youtube/v3/playlists`\r\n- `youtube.playlists.update` - `PUT /youtube/v3/playlists`\r\n\r\n### search\r\n- `youtube.search.list` - `GET /youtube/v3/search`\r\n\r\n### subscriptions\r\n- `youtube.subscriptions.delete` - `DELETE /youtube/v3/subscriptions`\r\n- `youtube.subscriptions.insert` - `POST /youtube/v3/subscriptions`\r\n- `youtube.subscriptions.list` - `GET /youtube/v3/subscriptions`\r\n\r\n### superChatEvents\r\n- `youtube.superChatEvents.list` - `GET /youtube/v3/superChatEvents`\r\n\r\n### tests\r\n- `youtube.tests.insert` - `POST /youtube/v3/tests`\r\n\r\n### thirdPartyLinks\r\n- `youtube.thirdPartyLinks.delete` - `DELETE /youtube/v3/thirdPartyLinks`\r\n- `youtube.thirdPartyLinks.insert` - `POST /youtube/v3/thirdPartyLinks`\r\n- `youtube.thirdPartyLinks.list` - `GET /youtube/v3/thirdPartyLinks`\r\n- `youtube.thirdPartyLinks.update` - `PUT /youtube/v3/thirdPartyLinks`\r\n\r\n### thumbnails\r\n- `youtube.thumbnails.set` - `POST /youtube/v3/thumbnails/set`\r\n\r\n### videoAbuseReportReasons\r\n- `youtube.videoAbuseReportReasons.list` - `GET /youtube/v3/videoAbuseReportReasons`\r\n\r\n### videoCategories\r\n- `youtube.videoCategories.list` - `GET /youtube/v3/videoCategories`\r\n\r\n### videoTrainability\r\n- `youtube.videoTrainability.get` - `GET /youtube/v3/videoTrainability`\r\n\r\n### videos\r\n- `youtube.videos.delete` - `DELETE /youtube/v3/videos`\r\n- `youtube.videos.getRating` - `GET /youtube/v3/videos/getRating`\r\n- `youtube.videos.insert` - `POST /youtube/v3/videos`\r\n- `youtube.videos.list` - `GET /youtube/v3/videos`\r\n- `youtube.videos.rate` - `POST /youtube/v3/videos/rate`\r\n- `youtube.videos.reportAbuse` - `POST /youtube/v3/videos/reportAbuse`\r\n- `youtube.videos.update` - `PUT /youtube/v3/videos`\r\n\r\n### watermarks\r\n- `youtube.watermarks.set` - `POST /youtube/v3/watermarks/set`\r\n- `youtube.watermarks.unset` - `POST /youtube/v3/watermarks/unset`\r\n\r\n### youtube.v3\r\n- `youtube.youtube.v3.updateCommentThreads` - `PUT /youtube/v3/commentThreads`\r\n\r\n### youtube.v3.liveChat.messages\r\n- `youtube.youtube.v3.liveChat.messages.stream` - `GET /youtube/v3/liveChat/messages/stream`\r\n\r\n## Method Reference\r\n\r\n### `youtube.abuseReports.insert`\r\n\r\n- Resource: `abuseReports`\r\n- HTTP: `POST /youtube/v3/abuseReports`\r\n- Required parameters: `part`\r\n- OAuth scopes: `https://www.googleapis.com/auth/youtube`, `https://www.googleapis.com/auth/youtube.force-ssl`\r\n- Request schema: `AbuseReport`\r\n- Response schema: `AbuseReport`\r\n\r\nInserts a new resource into this collection.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `part` | `query` | yes | `string` | The *part* parameter serves two purposes in this operation. It identifies the properties that the write operation will set as well as the properties that the API response will include. |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X POST \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/abuseReports\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\" \\\r\n  --json \"@body.json\" \\\r\n  --url-query \"part=snippet\"\r\n```\r\n\r\n### `youtube.activities.list`\r\n\r\n- Resource: `activities`\r\n- HTTP: `GET /youtube/v3/activities`\r\n- Required parameters: `part`\r\n- OAuth scopes: `https://www.googleapis.com/auth/youtube`, `https://www.googleapis.com/auth/youtube.force-ssl`, `https://www.googleapis.com/auth/youtube.readonly`\r\n- Request schema: `none`\r\n- Response schema: `ActivityListResponse`\r\n\r\nRetrieves a list of resources, possibly filtered.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `part` | `query` | yes | `string` | The *part* parameter specifies a comma-separated list of one or more activity resource properties that the API response will include. If the parameter identifies a property that contains child properties, the child pr... |\r\n| `channelId` | `query` | no | `string` |  |\r\n| `home` | `query` | no | `boolean` |  |\r\n| `mine` | `query` | no | `boolean` |  |\r\n| `publishedAfter` | `query` | no | `string` |  |\r\n| `publishedBefore` | `query` | no | `string` |  |\r\n| `regionCode` | `query` | no | `string` |  |\r\n| `maxResults` | `query` | no | `integer` | The *maxResults* parameter specifies the maximum number of items that should be returned in the result set. |\r\n| `pageToken` | `query` | no | `string` | The *pageToken* parameter identifies a specific page in the result set that should be returned. In an API response, the nextPageToken and prevPageToken properties identify other pages that could be retrieved. |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X GET \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/activities\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\" \\\r\n  --url-query \"part=snippet\"\r\n```\r\n\r\n### `youtube.captions.delete`\r\n\r\n- Resource: `captions`\r\n- HTTP: `DELETE /youtube/v3/captions`\r\n- Required parameters: `id`\r\n- OAuth scopes: `https://www.googleapis.com/auth/youtube.force-ssl`, `https://www.googleapis.com/auth/youtubepartner`\r\n- Request schema: `none`\r\n- Response schema: `none`\r\n\r\nDeletes a resource.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `id` | `query` | yes | `string` |  |\r\n| `onBehalfOf` | `query` | no | `string` | ID of the Google+ Page for the channel that the request is be on behalf of |\r\n| `onBehalfOfContentOwner` | `query` | no | `string` | *Note:* This parameter is intended exclusively for YouTube content partners. The *onBehalfOfContentOwner* parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on b... |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X DELETE \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/captions\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\" \\\r\n  --url-query \"id=${ID}\"\r\n```\r\n\r\n### `youtube.captions.download`\r\n\r\n- Resource: `captions`\r\n- HTTP: `GET /youtube/v3/captions/{id}`\r\n- Required parameters: `id`\r\n- OAuth scopes: `https://www.googleapis.com/auth/youtube.force-ssl`, `https://www.googleapis.com/auth/youtubepartner`\r\n- Request schema: `none`\r\n- Response schema: `none`\r\n- Supports media download: yes\r\n\r\nDownloads a caption track.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `id` | `path` | yes | `string` | The ID of the caption track to download, required for One Platform. |\r\n| `tlang` | `query` | no | `string` | tlang is the language code; machine translate the captions into this language. |\r\n| `tfmt` | `query` | no | `string` | Convert the captions into this format. Supported options are sbv, srt, and vtt. |\r\n| `onBehalfOf` | `query` | no | `string` | ID of the Google+ Page for the channel that the request is be on behalf of |\r\n| `onBehalfOfContentOwner` | `query` | no | `string` | *Note:* This parameter is intended exclusively for YouTube content partners. The *onBehalfOfContentOwner* parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on b... |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X GET \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/captions/${ID}\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\"\r\n```\r\n\r\n### `youtube.captions.insert`\r\n\r\n- Resource: `captions`\r\n- HTTP: `POST /youtube/v3/captions`\r\n- Required parameters: `part`\r\n- OAuth scopes: `https://www.googleapis.com/auth/youtube.force-ssl`, `https://www.googleapis.com/auth/youtubepartner`\r\n- Request schema: `Caption`\r\n- Response schema: `Caption`\r\n\r\nInserts a new resource into this collection.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `part` | `query` | yes | `string` | The *part* parameter specifies the caption resource parts that the API response will include. Set the parameter value to snippet. |\r\n| `sync` | `query` | no | `boolean` | Extra parameter to allow automatically syncing the uploaded caption/transcript with the audio. |\r\n| `onBehalfOf` | `query` | no | `string` | ID of the Google+ Page for the channel that the request is be on behalf of |\r\n| `onBehalfOfContentOwner` | `query` | no | `string` | *Note:* This parameter is intended exclusively for YouTube content partners. The *onBehalfOfContentOwner* parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on b... |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X POST \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/captions\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\" \\\r\n  --json \"@body.json\" \\\r\n  --url-query \"part=snippet\"\r\n```\r\n\r\n**MyBrandMetrics media upload curl**\r\n\r\n```bash\r\ncurl -sS -X POST \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/captions\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\" \\\r\n  -H \"Content-Type: ${MIME_TYPE:-application/octet-stream}\" \\\r\n  --data-binary \"@${MEDIA_FILE}\" \\\r\n  --url-query \"part=snippet\"\r\n```\r\n\r\n### `youtube.captions.list`\r\n\r\n- Resource: `captions`\r\n- HTTP: `GET /youtube/v3/captions`\r\n- Required parameters: `videoId`, `part`\r\n- OAuth scopes: `https://www.googleapis.com/auth/youtube.force-ssl`, `https://www.googleapis.com/auth/youtubepartner`\r\n- Request schema: `none`\r\n- Response schema: `CaptionListResponse`\r\n\r\nRetrieves a list of resources, possibly filtered.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `part` | `query` | yes | `string` | The *part* parameter specifies a comma-separated list of one or more caption resource parts that the API response will include. The part names that you can include in the parameter value are id and snippet. |\r\n| `videoId` | `query` | yes | `string` | Returns the captions for the specified video. |\r\n| `id` | `query` | no | `string` | Returns the captions with the given IDs for Stubby or Apiary. |\r\n| `onBehalfOf` | `query` | no | `string` | ID of the Google+ Page for the channel that the request is on behalf of. |\r\n| `onBehalfOfContentOwner` | `query` | no | `string` | *Note:* This parameter is intended exclusively for YouTube content partners. The *onBehalfOfContentOwner* parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on b... |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X GET \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/captions\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\" \\\r\n  --url-query \"part=snippet\" \\\r\n  --url-query \"videoId=${VIDEO_ID}\"\r\n```\r\n\r\n### `youtube.captions.update`\r\n\r\n- Resource: `captions`\r\n- HTTP: `PUT /youtube/v3/captions`\r\n- Required parameters: `part`\r\n- OAuth scopes: `https://www.googleapis.com/auth/youtube.force-ssl`, `https://www.googleapis.com/auth/youtubepartner`\r\n- Request schema: `Caption`\r\n- Response schema: `Caption`\r\n\r\nUpdates an existing resource.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `part` | `query` | yes | `string` | The *part* parameter specifies a comma-separated list of one or more caption resource parts that the API response will include. The part names that you can include in the parameter value are id and snippet. |\r\n| `sync` | `query` | no | `boolean` | Extra parameter to allow automatically syncing the uploaded caption/transcript with the audio. |\r\n| `onBehalfOf` | `query` | no | `string` | ID of the Google+ Page for the channel that the request is on behalf of. |\r\n| `onBehalfOfContentOwner` | `query` | no | `string` | *Note:* This parameter is intended exclusively for YouTube content partners. The *onBehalfOfContentOwner* parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on b... |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X PUT \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/captions\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\" \\\r\n  --json \"@body.json\" \\\r\n  --url-query \"part=snippet\"\r\n```\r\n\r\n**MyBrandMetrics media upload curl**\r\n\r\n```bash\r\ncurl -sS -X PUT \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/captions\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\" \\\r\n  -H \"Content-Type: ${MIME_TYPE:-application/octet-stream}\" \\\r\n  --data-binary \"@${MEDIA_FILE}\" \\\r\n  --url-query \"part=snippet\"\r\n```\r\n\r\n### `youtube.channelBanners.insert`\r\n\r\n- Resource: `channelBanners`\r\n- HTTP: `POST /youtube/v3/channelBanners/insert`\r\n- Required parameters: none\r\n- OAuth scopes: `https://www.googleapis.com/auth/youtube`, `https://www.googleapis.com/auth/youtube.force-ssl`, `https://www.googleapis.com/auth/youtube.upload`\r\n- Request schema: `ChannelBannerResource`\r\n- Response schema: `ChannelBannerResource`\r\n\r\nInserts a new resource into this collection.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `channelId` | `query` | no | `string` | Unused, channel_id is currently derived from the security context of the requestor. |\r\n| `onBehalfOfContentOwner` | `query` | no | `string` | *Note:* This parameter is intended exclusively for YouTube content partners. The *onBehalfOfContentOwner* parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on b... |\r\n| `onBehalfOfContentOwnerChannel` | `query` | no | `string` | This parameter can only be used in a properly authorized request. *Note:* This parameter is intended exclusively for YouTube content partners. The *onBehalfOfContentOwnerChannel* parameter specifies the YouTube channe... |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X POST \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/channelBanners/insert\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\" \\\r\n  --json \"@body.json\"\r\n```\r\n\r\n**MyBrandMetrics media upload curl**\r\n\r\n```bash\r\ncurl -sS -X POST \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/channelBanners/insert\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\" \\\r\n  -H \"Content-Type: ${MIME_TYPE:-application/octet-stream}\" \\\r\n  --data-binary \"@${MEDIA_FILE}\"\r\n```\r\n\r\n### `youtube.channelSections.delete`\r\n\r\n- Resource: `channelSections`\r\n- HTTP: `DELETE /youtube/v3/channelSections`\r\n- Required parameters: `id`\r\n- OAuth scopes: `https://www.googleapis.com/auth/youtube`, `https://www.googleapis.com/auth/youtube.force-ssl`, `https://www.googleapis.com/auth/youtubepartner`\r\n- Request schema: `none`\r\n- Response schema: `none`\r\n\r\nDeletes a resource.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `id` | `query` | yes | `string` |  |\r\n| `onBehalfOfContentOwner` | `query` | no | `string` | *Note:* This parameter is intended exclusively for YouTube content partners. The *onBehalfOfContentOwner* parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on b... |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X DELETE \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/channelSections\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\" \\\r\n  --url-query \"id=${ID}\"\r\n```\r\n\r\n### `youtube.channelSections.insert`\r\n\r\n- Resource: `channelSections`\r\n- HTTP: `POST /youtube/v3/channelSections`\r\n- Required parameters: `part`\r\n- OAuth scopes: `https://www.googleapis.com/auth/youtube`, `https://www.googleapis.com/auth/youtube.force-ssl`, `https://www.googleapis.com/auth/youtubepartner`\r\n- Request schema: `ChannelSection`\r\n- Response schema: `ChannelSection`\r\n\r\nInserts a new resource into this collection.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `part` | `query` | yes | `string` | The *part* parameter serves two purposes in this operation. It identifies the properties that the write operation will set as well as the properties that the API response will include. The part names that you can incl... |\r\n| `onBehalfOfContentOwner` | `query` | no | `string` | *Note:* This parameter is intended exclusively for YouTube content partners. The *onBehalfOfContentOwner* parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on b... |\r\n| `onBehalfOfContentOwnerChannel` | `query` | no | `string` | This parameter can only be used in a properly authorized request. *Note:* This parameter is intended exclusively for YouTube content partners. The *onBehalfOfContentOwnerChannel* parameter specifies the YouTube channe... |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X POST \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/channelSections\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\" \\\r\n  --json \"@body.json\" \\\r\n  --url-query \"part=snippet\"\r\n```\r\n\r\n### `youtube.channelSections.list`\r\n\r\n- Resource: `channelSections`\r\n- HTTP: `GET /youtube/v3/channelSections`\r\n- Required parameters: `part`\r\n- OAuth scopes: `https://www.googleapis.com/auth/youtube`, `https://www.googleapis.com/auth/youtube.force-ssl`, `https://www.googleapis.com/auth/youtube.readonly`, `https://www.googleapis.com/auth/youtubepartner`\r\n- Request schema: `none`\r\n- Response schema: `ChannelSectionListResponse`\r\n\r\nRetrieves a list of resources, possibly filtered.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `part` | `query` | yes | `string` | The *part* parameter specifies a comma-separated list of one or more channelSection resource properties that the API response will include. The part names that you can include in the parameter value are id, snippet, a... |\r\n| `id` | `query` | no | `string` | Return the ChannelSections with the given IDs for Stubby or Apiary. |\r\n| `mine` | `query` | no | `boolean` | Return the ChannelSections owned by the authenticated user. |\r\n| `channelId` | `query` | no | `string` | Return the ChannelSections owned by the specified channel ID. |\r\n| `hl` | `query` | no | `string` | Return content in specified language |\r\n| `onBehalfOfContentOwner` | `query` | no | `string` | *Note:* This parameter is intended exclusively for YouTube content partners. The *onBehalfOfContentOwner* parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on b... |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X GET \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/channelSections\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\" \\\r\n  --url-query \"part=snippet\"\r\n```\r\n\r\n### `youtube.channelSections.update`\r\n\r\n- Resource: `channelSections`\r\n- HTTP: `PUT /youtube/v3/channelSections`\r\n- Required parameters: `part`\r\n- OAuth scopes: `https://www.googleapis.com/auth/youtube`, `https://www.googleapis.com/auth/youtube.force-ssl`, `https://www.googleapis.com/auth/youtubepartner`\r\n- Request schema: `ChannelSection`\r\n- Response schema: `ChannelSection`\r\n\r\nUpdates an existing resource.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `part` | `query` | yes | `string` | The *part* parameter serves two purposes in this operation. It identifies the properties that the write operation will set as well as the properties that the API response will include. The part names that you can incl... |\r\n| `onBehalfOfContentOwner` | `query` | no | `string` | *Note:* This parameter is intended exclusively for YouTube content partners. The *onBehalfOfContentOwner* parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on b... |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X PUT \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/channelSections\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\" \\\r\n  --json \"@body.json\" \\\r\n  --url-query \"part=snippet\"\r\n```\r\n\r\n### `youtube.channels.list`\r\n\r\n- Resource: `channels`\r\n- HTTP: `GET /youtube/v3/channels`\r\n- Required parameters: `part`\r\n- OAuth scopes: `https://www.googleapis.com/auth/youtube`, `https://www.googleapis.com/auth/youtube.force-ssl`, `https://www.googleapis.com/auth/youtube.readonly`, `https://www.googleapis.com/auth/youtubepartner`, `https://www.googleapis.com/auth/youtubepartner-channel-audit`\r\n- Request schema: `none`\r\n- Response schema: `ChannelListResponse`\r\n\r\nRetrieves a list of resources, possibly filtered.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `part` | `query` | yes | `string` | The *part* parameter specifies a comma-separated list of one or more channel resource properties that the API response will include. If the parameter identifies a property that contains child properties, the child pro... |\r\n| `mine` | `query` | no | `boolean` | Return the ids of channels owned by the authenticated user. |\r\n| `id` | `query` | no | `string` | Return the channels with the specified IDs. |\r\n| `mySubscribers` | `query` | no | `boolean` | Return the channels subscribed to the authenticated user |\r\n| `categoryId` | `query` | no | `string` | Return the channels within the specified guide category ID. |\r\n| `managedByMe` | `query` | no | `boolean` | Return the channels managed by the authenticated user. |\r\n| `forUsername` | `query` | no | `string` | Return the channel associated with a YouTube username. |\r\n| `forHandle` | `query` | no | `string` | Return the channel associated with a YouTube handle. |\r\n| `hl` | `query` | no | `string` | Stands for \"host language\". Specifies the localization language of the metadata to be filled into snippet.localized. The field is filled with the default metadata if there is no localization in the specified language.... |\r\n| `maxResults` | `query` | no | `integer` | The *maxResults* parameter specifies the maximum number of items that should be returned in the result set. |\r\n| `pageToken` | `query` | no | `string` | The *pageToken* parameter identifies a specific page in the result set that should be returned. In an API response, the nextPageToken and prevPageToken properties identify other pages that could be retrieved. |\r\n| `onBehalfOfContentOwner` | `query` | no | `string` | *Note:* This parameter is intended exclusively for YouTube content partners. The *onBehalfOfContentOwner* parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on b... |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X GET \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/channels\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\" \\\r\n  --url-query \"part=snippet\"\r\n```\r\n\r\n### `youtube.channels.update`\r\n\r\n- Resource: `channels`\r\n- HTTP: `PUT /youtube/v3/channels`\r\n- Required parameters: `part`\r\n- OAuth scopes: `https://www.googleapis.com/auth/youtube`, `https://www.googleapis.com/auth/youtube.force-ssl`, `https://www.googleapis.com/auth/youtubepartner`\r\n- Request schema: `Channel`\r\n- Response schema: `Channel`\r\n\r\nUpdates an existing resource.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `part` | `query` | yes | `string` | The *part* parameter serves two purposes in this operation. It identifies the properties that the write operation will set as well as the properties that the API response will include. The API currently only allows th... |\r\n| `onBehalfOfContentOwner` | `query` | no | `string` | The *onBehalfOfContentOwner* parameter indicates that the authenticated user is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own... |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X PUT \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/channels\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\" \\\r\n  --json \"@body.json\" \\\r\n  --url-query \"part=snippet\"\r\n```\r\n\r\n### `youtube.commentThreads.insert`\r\n\r\n- Resource: `commentThreads`\r\n- HTTP: `POST /youtube/v3/commentThreads`\r\n- Required parameters: `part`\r\n- OAuth scopes: `https://www.googleapis.com/auth/youtube.force-ssl`\r\n- Request schema: `CommentThread`\r\n- Response schema: `CommentThread`\r\n\r\nInserts a new resource into this collection.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `part` | `query` | yes | `string` | The *part* parameter identifies the properties that the API response will include. Set the parameter value to snippet. The snippet part has a quota cost of 2 units. |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X POST \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/commentThreads\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\" \\\r\n  --json \"@body.json\" \\\r\n  --url-query \"part=snippet\"\r\n```\r\n\r\n### `youtube.commentThreads.list`\r\n\r\n- Resource: `commentThreads`\r\n- HTTP: `GET /youtube/v3/commentThreads`\r\n- Required parameters: `part`\r\n- OAuth scopes: `https://www.googleapis.com/auth/youtube.force-ssl`\r\n- Request schema: `none`\r\n- Response schema: `CommentThreadListResponse`\r\n\r\nRetrieves a list of resources, possibly filtered.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `part` | `query` | yes | `string` | The *part* parameter specifies a comma-separated list of one or more commentThread resource properties that the API response will include. |\r\n| `id` | `query` | no | `string` | Returns the comment threads with the given IDs for Stubby or Apiary. |\r\n| `videoId` | `query` | no | `string` | Returns the comment threads of the specified video. |\r\n| `postId` | `query` | no | `string` | Returns the comment threads of the specified post. |\r\n| `channelId` | `query` | no | `string` | Returns the comment threads for all the channel comments (ie does not include comments left on videos). |\r\n| `allThreadsRelatedToChannelId` | `query` | no | `string` | Returns the comment threads of all videos of the channel and the channel comments as well. |\r\n| `moderationStatus` | `query` | no | `string` | Limits the returned comment threads to those with the specified moderation status. Not compatible with the 'id' filter. Valid values: published, heldForReview, likelySpam. Allowed: published, heldForReview, likelySpam... |\r\n| `searchTerms` | `query` | no | `string` | Limits the returned comment threads to those matching the specified key words. Not compatible with the 'id' filter. |\r\n| `textFormat` | `query` | no | `string` | The requested text format for the returned comments. Allowed: textFormatUnspecified, html, plainText. |\r\n| `order` | `query` | no | `string` | Allowed: orderUnspecified, time, relevance. |\r\n| `maxResults` | `query` | no | `integer` | The *maxResults* parameter specifies the maximum number of items that should be returned in the result set. |\r\n| `pageToken` | `query` | no | `string` | The *pageToken* parameter identifies a specific page in the result set that should be returned. In an API response, the nextPageToken and prevPageToken properties identify other pages that could be retrieved. |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X GET \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/commentThreads\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\" \\\r\n  --url-query \"part=snippet\"\r\n```\r\n\r\n### `youtube.comments.delete`\r\n\r\n- Resource: `comments`\r\n- HTTP: `DELETE /youtube/v3/comments`\r\n- Required parameters: `id`\r\n- OAuth scopes: `https://www.googleapis.com/auth/youtube.force-ssl`\r\n- Request schema: `none`\r\n- Response schema: `none`\r\n\r\nDeletes a resource.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `id` | `query` | yes | `string` |  |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X DELETE \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/comments\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\" \\\r\n  --url-query \"id=${ID}\"\r\n```\r\n\r\n### `youtube.comments.insert`\r\n\r\n- Resource: `comments`\r\n- HTTP: `POST /youtube/v3/comments`\r\n- Required parameters: `part`\r\n- OAuth scopes: `https://www.googleapis.com/auth/youtube.force-ssl`\r\n- Request schema: `Comment`\r\n- Response schema: `Comment`\r\n\r\nInserts a new resource into this collection.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `part` | `query` | yes | `string` | The *part* parameter identifies the properties that the API response will include. Set the parameter value to snippet. The snippet part has a quota cost of 2 units. |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X POST \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/comments\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\" \\\r\n  --json \"@body.json\" \\\r\n  --url-query \"part=snippet\"\r\n```\r\n\r\n### `youtube.comments.list`\r\n\r\n- Resource: `comments`\r\n- HTTP: `GET /youtube/v3/comments`\r\n- Required parameters: `part`\r\n- OAuth scopes: `https://www.googleapis.com/auth/youtube.force-ssl`\r\n- Request schema: `none`\r\n- Response schema: `CommentListResponse`\r\n\r\nRetrieves a list of resources, possibly filtered.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `part` | `query` | yes | `string` | The *part* parameter specifies a comma-separated list of one or more comment resource properties that the API response will include. |\r\n| `id` | `query` | no | `string` | Returns the comments with the given IDs for One Platform. |\r\n| `parentId` | `query` | no | `string` | Returns replies to the specified comment. Note, currently YouTube features only one level of replies (ie replies to top level comments). However replies to replies may be supported in the future. |\r\n| `textFormat` | `query` | no | `string` | The requested text format for the returned comments. Allowed: textFormatUnspecified, html, plainText. |\r\n| `maxResults` | `query` | no | `integer` | The *maxResults* parameter specifies the maximum number of items that should be returned in the result set. |\r\n| `pageToken` | `query` | no | `string` | The *pageToken* parameter identifies a specific page in the result set that should be returned. In an API response, the nextPageToken and prevPageToken properties identify other pages that could be retrieved. |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X GET \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/comments\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\" \\\r\n  --url-query \"part=snippet\"\r\n```\r\n\r\n### `youtube.comments.markAsSpam`\r\n\r\n- Resource: `comments`\r\n- HTTP: `POST /youtube/v3/comments/markAsSpam`\r\n- Required parameters: `id`\r\n- OAuth scopes: `https://www.googleapis.com/auth/youtube.force-ssl`\r\n- Request schema: `none`\r\n- Response schema: `none`\r\n\r\nExpresses the caller's opinion that one or more comments should be flagged as spam.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `id` | `query` | yes | `string` | Flags the comments with the given IDs as spam in the caller's opinion. |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X POST \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/comments/markAsSpam\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\" \\\r\n  --url-query \"id=${ID}\"\r\n```\r\n\r\n### `youtube.comments.setModerationStatus`\r\n\r\n- Resource: `comments`\r\n- HTTP: `POST /youtube/v3/comments/setModerationStatus`\r\n- Required parameters: `id`, `moderationStatus`\r\n- OAuth scopes: `https://www.googleapis.com/auth/youtube.force-ssl`\r\n- Request schema: `none`\r\n- Response schema: `none`\r\n\r\nSets the moderation status of one or more comments.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `id` | `query` | yes | `string` | Modifies the moderation status of the comments with the given IDs |\r\n| `moderationStatus` | `query` | yes | `string` | Specifies the requested moderation status. Note, comments can be in statuses, which are not available through this call. For example, this call does not allow to mark a comment as 'likely spam'. Valid values: 'heldFor... |\r\n| `banAuthor` | `query` | no | `boolean` | If set to true the author of the comment gets added to the ban list. This means all future comments of the author will autmomatically be rejected. Only valid in combination with STATUS_REJECTED. |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X POST \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/comments/setModerationStatus\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\" \\\r\n  --url-query \"id=${ID}\" \\\r\n  --url-query \"moderationStatus=published\"\r\n```\r\n\r\n### `youtube.comments.update`\r\n\r\n- Resource: `comments`\r\n- HTTP: `PUT /youtube/v3/comments`\r\n- Required parameters: `part`\r\n- OAuth scopes: `https://www.googleapis.com/auth/youtube.force-ssl`\r\n- Request schema: `Comment`\r\n- Response schema: `Comment`\r\n\r\nUpdates an existing resource.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `part` | `query` | yes | `string` | The *part* parameter identifies the properties that the API response will include. You must at least include the snippet part in the parameter value since that part contains all of the properties that the API request... |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X PUT \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/comments\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\" \\\r\n  --json \"@body.json\" \\\r\n  --url-query \"part=snippet\"\r\n```\r\n\r\n### `youtube.i18nLanguages.list`\r\n\r\n- Resource: `i18nLanguages`\r\n- HTTP: `GET /youtube/v3/i18nLanguages`\r\n- Required parameters: `part`\r\n- OAuth scopes: `https://www.googleapis.com/auth/youtube`, `https://www.googleapis.com/auth/youtube.force-ssl`, `https://www.googleapis.com/auth/youtube.readonly`, `https://www.googleapis.com/auth/youtubepartner`\r\n- Request schema: `none`\r\n- Response schema: `I18nLanguageListResponse`\r\n\r\nRetrieves a list of resources, possibly filtered.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `part` | `query` | yes | `string` | The *part* parameter specifies the i18nLanguage resource properties that the API response will include. Set the parameter value to snippet. |\r\n| `hl` | `query` | no | `string` |  |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X GET \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/i18nLanguages\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\" \\\r\n  --url-query \"part=snippet\"\r\n```\r\n\r\n### `youtube.i18nRegions.list`\r\n\r\n- Resource: `i18nRegions`\r\n- HTTP: `GET /youtube/v3/i18nRegions`\r\n- Required parameters: `part`\r\n- OAuth scopes: `https://www.googleapis.com/auth/youtube`, `https://www.googleapis.com/auth/youtube.force-ssl`, `https://www.googleapis.com/auth/youtube.readonly`, `https://www.googleapis.com/auth/youtubepartner`\r\n- Request schema: `none`\r\n- Response schema: `I18nRegionListResponse`\r\n\r\nRetrieves a list of resources, possibly filtered.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `part` | `query` | yes | `string` | The *part* parameter specifies the i18nRegion resource properties that the API response will include. Set the parameter value to snippet. |\r\n| `hl` | `query` | no | `string` |  |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X GET \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/i18nRegions\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\" \\\r\n  --url-query \"part=snippet\"\r\n```\r\n\r\n### `youtube.liveBroadcasts.bind`\r\n\r\n- Resource: `liveBroadcasts`\r\n- HTTP: `POST /youtube/v3/liveBroadcasts/bind`\r\n- Required parameters: `id`, `part`\r\n- OAuth scopes: `https://www.googleapis.com/auth/youtube`, `https://www.googleapis.com/auth/youtube.force-ssl`\r\n- Request schema: `none`\r\n- Response schema: `LiveBroadcast`\r\n\r\nBind a broadcast to a stream.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `id` | `query` | yes | `string` | Broadcast to bind to the stream |\r\n| `part` | `query` | yes | `string` | The *part* parameter specifies a comma-separated list of one or more liveBroadcast resource properties that the API response will include. The part names that you can include in the parameter value are id, snippet, co... |\r\n| `streamId` | `query` | no | `string` | Stream to bind, if not set unbind the current one. |\r\n| `onBehalfOfContentOwner` | `query` | no | `string` | *Note:* This parameter is intended exclusively for YouTube content partners. The *onBehalfOfContentOwner* parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on b... |\r\n| `onBehalfOfContentOwnerChannel` | `query` | no | `string` | This parameter can only be used in a properly authorized request. *Note:* This parameter is intended exclusively for YouTube content partners. The *onBehalfOfContentOwnerChannel* parameter specifies the YouTube channe... |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X POST \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/liveBroadcasts/bind\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\" \\\r\n  --url-query \"id=${ID}\" \\\r\n  --url-query \"part=snippet\"\r\n```\r\n\r\n### `youtube.liveBroadcasts.delete`\r\n\r\n- Resource: `liveBroadcasts`\r\n- HTTP: `DELETE /youtube/v3/liveBroadcasts`\r\n- Required parameters: `id`\r\n- OAuth scopes: `https://www.googleapis.com/auth/youtube`, `https://www.googleapis.com/auth/youtube.force-ssl`\r\n- Request schema: `none`\r\n- Response schema: `none`\r\n\r\nDelete a given broadcast.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `id` | `query` | yes | `string` | Broadcast to delete. |\r\n| `onBehalfOfContentOwner` | `query` | no | `string` | *Note:* This parameter is intended exclusively for YouTube content partners. The *onBehalfOfContentOwner* parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on b... |\r\n| `onBehalfOfContentOwnerChannel` | `query` | no | `string` | This parameter can only be used in a properly authorized request. *Note:* This parameter is intended exclusively for YouTube content partners. The *onBehalfOfContentOwnerChannel* parameter specifies the YouTube channe... |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X DELETE \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/liveBroadcasts\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\" \\\r\n  --url-query \"id=${ID}\"\r\n```\r\n\r\n### `youtube.liveBroadcasts.insert`\r\n\r\n- Resource: `liveBroadcasts`\r\n- HTTP: `POST /youtube/v3/liveBroadcasts`\r\n- Required parameters: `part`\r\n- OAuth scopes: `https://www.googleapis.com/auth/youtube`, `https://www.googleapis.com/auth/youtube.force-ssl`\r\n- Request schema: `LiveBroadcast`\r\n- Response schema: `LiveBroadcast`\r\n\r\nInserts a new stream for the authenticated user.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `part` | `query` | yes | `string` | The *part* parameter serves two purposes in this operation. It identifies the properties that the write operation will set as well as the properties that the API response will include. The part properties that you can... |\r\n| `onBehalfOfContentOwner` | `query` | no | `string` | *Note:* This parameter is intended exclusively for YouTube content partners. The *onBehalfOfContentOwner* parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on b... |\r\n| `onBehalfOfContentOwnerChannel` | `query` | no | `string` | This parameter can only be used in a properly authorized request. *Note:* This parameter is intended exclusively for YouTube content partners. The *onBehalfOfContentOwnerChannel* parameter specifies the YouTube channe... |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X POST \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/liveBroadcasts\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\" \\\r\n  --json \"@body.json\" \\\r\n  --url-query \"part=snippet\"\r\n```\r\n\r\n### `youtube.liveBroadcasts.insertCuepoint`\r\n\r\n- Resource: `liveBroadcasts`\r\n- HTTP: `POST /youtube/v3/liveBroadcasts/cuepoint`\r\n- Required parameters: none\r\n- OAuth scopes: `https://www.googleapis.com/auth/youtube`, `https://www.googleapis.com/auth/youtube.force-ssl`, `https://www.googleapis.com/auth/youtubepartner`\r\n- Request schema: `Cuepoint`\r\n- Response schema: `Cuepoint`\r\n\r\nInsert cuepoints in a broadcast\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `id` | `query` | no | `string` | Broadcast to insert ads to, or equivalently `external_video_id` for internal use. |\r\n| `part` | `query` | no | `string` | The *part* parameter specifies a comma-separated list of one or more liveBroadcast resource properties that the API response will include. The part names that you can include in the parameter value are id, snippet, co... |\r\n| `onBehalfOfContentOwner` | `query` | no | `string` | *Note:* This parameter is intended exclusively for YouTube content partners. The *onBehalfOfContentOwner* parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on b... |\r\n| `onBehalfOfContentOwnerChannel` | `query` | no | `string` | This parameter can only be used in a properly authorized request. *Note:* This parameter is intended exclusively for YouTube content partners. The *onBehalfOfContentOwnerChannel* parameter specifies the YouTube channe... |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X POST \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/liveBroadcasts/cuepoint\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\" \\\r\n  --json \"@body.json\" \\\r\n  --url-query \"part=snippet\"\r\n```\r\n\r\n### `youtube.liveBroadcasts.list`\r\n\r\n- Resource: `liveBroadcasts`\r\n- HTTP: `GET /youtube/v3/liveBroadcasts`\r\n- Required parameters: `part`\r\n- OAuth scopes: `https://www.googleapis.com/auth/youtube`, `https://www.googleapis.com/auth/youtube.force-ssl`, `https://www.googleapis.com/auth/youtube.readonly`\r\n- Request schema: `none`\r\n- Response schema: `LiveBroadcastListResponse`\r\n\r\nRetrieve the list of broadcasts associated with the given channel.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `part` | `query` | yes | `string` | The *part* parameter specifies a comma-separated list of one or more liveBroadcast resource properties that the API response will include. The part names that you can include in the parameter value are id, snippet, co... |\r\n| `broadcastStatus` | `query` | no | `string` | Return broadcasts with a certain status, e.g. active broadcasts. Allowed: broadcastStatusFilterUnspecified, all, active, upcoming, completed. |\r\n| `id` | `query` | no | `string` | Return broadcasts with the given ids from Stubby or Apiary. |\r\n| `mine` | `query` | no | `boolean` |  |\r\n| `broadcastType` | `query` | no | `string` | Return only broadcasts with the selected type. Allowed: broadcastTypeFilterUnspecified, all, event, persistent. |\r\n| `maxResults` | `query` | no | `integer` | The *maxResults* parameter specifies the maximum number of items that should be returned in the result set. |\r\n| `pageToken` | `query` | no | `string` | The *pageToken* parameter identifies a specific page in the result set that should be returned. In an API response, the nextPageToken and prevPageToken properties identify other pages that could be retrieved. |\r\n| `onBehalfOfContentOwner` | `query` | no | `string` | *Note:* This parameter is intended exclusively for YouTube content partners. The *onBehalfOfContentOwner* parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on b... |\r\n| `onBehalfOfContentOwnerChannel` | `query` | no | `string` | This parameter can only be used in a properly authorized request. *Note:* This parameter is intended exclusively for YouTube content partners. The *onBehalfOfContentOwnerChannel* parameter specifies the YouTube channe... |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X GET \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybran\n\nFile v1.2.4:references/services/youtube-reporting-v1.md\n\n# YouTube Reporting API v1\r\n\r\nDiscovery source: `https://youtubereporting.googleapis.com/$discovery/rest?version=v1`\r\nPublic API base URL: `https://api.mybrandmetrics.com`\r\nMethods: 8\r\nSchemas: 18\r\n\r\n## Method Index\r\n\r\n### jobs\r\n- `youtubereporting.jobs.create` - `POST /v1/jobs`\r\n- `youtubereporting.jobs.delete` - `DELETE /v1/jobs/{jobId}`\r\n- `youtubereporting.jobs.get` - `GET /v1/jobs/{jobId}`\r\n- `youtubereporting.jobs.list` - `GET /v1/jobs`\r\n\r\n### jobs.reports\r\n- `youtubereporting.jobs.reports.get` - `GET /v1/jobs/{jobId}/reports/{reportId}`\r\n- `youtubereporting.jobs.reports.list` - `GET /v1/jobs/{jobId}/reports`\r\n\r\n### media\r\n- `youtubereporting.media.download` - `GET /v1/media/{+resourceName}`\r\n\r\n### reportTypes\r\n- `youtubereporting.reportTypes.list` - `GET /v1/reportTypes`\r\n\r\n## Method Reference\r\n\r\n### `youtubereporting.jobs.create`\r\n\r\n- Resource: `jobs`\r\n- HTTP: `POST /v1/jobs`\r\n- Required parameters: none\r\n- OAuth scopes: `https://www.googleapis.com/auth/yt-analytics-monetary.readonly`, `https://www.googleapis.com/auth/yt-analytics.readonly`\r\n- Request schema: `Job`\r\n- Response schema: `Job`\r\n\r\nCreates a job and returns it.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `onBehalfOfContentOwner` | `query` | no | `string` | The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel). |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X POST \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtubeReporting/jobs\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\" \\\r\n  --json \"@body.json\"\r\n```\r\n\r\n### `youtubereporting.jobs.delete`\r\n\r\n- Resource: `jobs`\r\n- HTTP: `DELETE /v1/jobs/{jobId}`\r\n- Required parameters: `jobId`\r\n- OAuth scopes: `https://www.googleapis.com/auth/yt-analytics-monetary.readonly`, `https://www.googleapis.com/auth/yt-analytics.readonly`\r\n- Request schema: `none`\r\n- Response schema: `Empty`\r\n\r\nDeletes a job.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `jobId` | `path` | yes | `string` | The ID of the job to delete. |\r\n| `onBehalfOfContentOwner` | `query` | no | `string` | The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel). |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X DELETE \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtubeReporting/jobs/${JOB_ID}\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\"\r\n```\r\n\r\n### `youtubereporting.jobs.get`\r\n\r\n- Resource: `jobs`\r\n- HTTP: `GET /v1/jobs/{jobId}`\r\n- Required parameters: `jobId`\r\n- OAuth scopes: `https://www.googleapis.com/auth/yt-analytics-monetary.readonly`, `https://www.googleapis.com/auth/yt-analytics.readonly`\r\n- Request schema: `none`\r\n- Response schema: `Job`\r\n\r\nGets a job.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `jobId` | `path` | yes | `string` | The ID of the job to retrieve. |\r\n| `onBehalfOfContentOwner` | `query` | no | `string` | The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel). |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X GET \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtubeReporting/jobs/${JOB_ID}\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\"\r\n```\r\n\r\n### `youtubereporting.jobs.list`\r\n\r\n- Resource: `jobs`\r\n- HTTP: `GET /v1/jobs`\r\n- Required parameters: none\r\n- OAuth scopes: `https://www.googleapis.com/auth/yt-analytics-monetary.readonly`, `https://www.googleapis.com/auth/yt-analytics.readonly`\r\n- Request schema: `none`\r\n- Response schema: `ListJobsResponse`\r\n\r\nLists jobs.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `onBehalfOfContentOwner` | `query` | no | `string` | The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel). |\r\n| `pageSize` | `query` | no | `integer` | Requested page size. Server may return fewer jobs than requested. If unspecified, server will pick an appropriate default. |\r\n| `pageToken` | `query` | no | `string` | A token identifying a page of results the server should return. Typically, this is the value of ListReportTypesResponse.next_page_token returned in response to the previous call to the `ListJobs` method. |\r\n| `includeSystemManaged` | `query` | no | `boolean` | If set to true, also system-managed jobs will be returned; otherwise only user-created jobs will be returned. System-managed jobs can neither be modified nor deleted. |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X GET \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtubeReporting/jobs\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\"\r\n```\r\n\r\n### `youtubereporting.jobs.reports.get`\r\n\r\n- Resource: `jobs.reports`\r\n- HTTP: `GET /v1/jobs/{jobId}/reports/{reportId}`\r\n- Required parameters: `jobId`, `reportId`\r\n- OAuth scopes: `https://www.googleapis.com/auth/yt-analytics-monetary.readonly`, `https://www.googleapis.com/auth/yt-analytics.readonly`\r\n- Request schema: `none`\r\n- Response schema: `Report`\r\n\r\nGets the metadata of a specific report.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `jobId` | `path` | yes | `string` | The ID of the job. |\r\n| `reportId` | `path` | yes | `string` | The ID of the report to retrieve. |\r\n| `onBehalfOfContentOwner` | `query` | no | `string` | The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel). |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X GET \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtubeReporting/jobs/${JOB_ID}/reports/${REPORT_ID}\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\"\r\n```\r\n\r\n### `youtubereporting.jobs.reports.list`\r\n\r\n- Resource: `jobs.reports`\r\n- HTTP: `GET /v1/jobs/{jobId}/reports`\r\n- Required parameters: `jobId`\r\n- OAuth scopes: `https://www.googleapis.com/auth/yt-analytics-monetary.readonly`, `https://www.googleapis.com/auth/yt-analytics.readonly`\r\n- Request schema: `none`\r\n- Response schema: `ListReportsResponse`\r\n\r\nLists reports created by a specific job. Returns NOT_FOUND if the job does not exist.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `jobId` | `path` | yes | `string` | The ID of the job. |\r\n| `onBehalfOfContentOwner` | `query` | no | `string` | The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel). |\r\n| `pageSize` | `query` | no | `integer` | Requested page size. Server may return fewer report types than requested. If unspecified, server will pick an appropriate default. |\r\n| `pageToken` | `query` | no | `string` | A token identifying a page of results the server should return. Typically, this is the value of ListReportsResponse.next_page_token returned in response to the previous call to the `ListReports` method. |\r\n| `createdAfter` | `query` | no | `string` | If set, only reports created after the specified date/time are returned. |\r\n| `startTimeAtOrAfter` | `query` | no | `string` | If set, only reports whose start time is greater than or equal the specified date/time are returned. |\r\n| `startTimeBefore` | `query` | no | `string` | If set, only reports whose start time is smaller than the specified date/time are returned. |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X GET \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtubeReporting/jobs/${JOB_ID}/reports\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\"\r\n```\r\n\r\n### `youtubereporting.media.download`\r\n\r\n- Resource: `media`\r\n- HTTP: `GET /v1/media/{+resourceName}`\r\n- Required parameters: `resourceName`\r\n- OAuth scopes: `https://www.googleapis.com/auth/yt-analytics-monetary.readonly`, `https://www.googleapis.com/auth/yt-analytics.readonly`\r\n- Request schema: `none`\r\n- Response schema: `GdataMedia`\r\n- Supports media download: yes\r\n\r\nMethod for media download. Download is supported on the URI `/v1/media/{+name}?alt=media`.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `resourceName` | `path` | yes | `string` | Name of the media that is being downloaded. |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X GET \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtubeReporting/media/${RESOURCE_NAME}\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\"\r\n```\r\n\r\n### `youtubereporting.reportTypes.list`\r\n\r\n- Resource: `reportTypes`\r\n- HTTP: `GET /v1/reportTypes`\r\n- Required parameters: none\r\n- OAuth scopes: `https://www.googleapis.com/auth/yt-analytics-monetary.readonly`, `https://www.googleapis.com/auth/yt-analytics.readonly`\r\n- Request schema: `none`\r\n- Response schema: `ListReportTypesResponse`\r\n\r\nLists report types.\r\n\r\n**Parameters**\r\n\r\n| Name | Location | Required | Type | Notes |\r\n| --- | --- | --- | --- | --- |\r\n| `onBehalfOfContentOwner` | `query` | no | `string` | The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel). |\r\n| `pageSize` | `query` | no | `integer` | Requested page size. Server may return fewer report types than requested. If unspecified, server will pick an appropriate default. |\r\n| `pageToken` | `query` | no | `string` | A token identifying a page of results the server should return. Typically, this is the value of ListReportTypesResponse.next_page_token returned in response to the previous call to the `ListReportTypes` method. |\r\n| `includeSystemManaged` | `query` | no | `boolean` | If set to true, also system-managed report types will be returned; otherwise only the report types that can be used to create new reporting jobs will be returned. |\r\n\r\n**MyBrandMetrics curl**\r\n\r\n```bash\r\ncurl -sS -X GET \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtubeReporting/reportTypes\" \\\r\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\r\n  -H \"Accept: application/json\"\r\n```\r\n\r\n## Schemas\r\n\r\n| Schema | Type | Description |\r\n| --- | --- | --- |\r\n| `Empty` | `object` | A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an AP... |\r\n| `GdataBlobstore2Info` | `object` | gdata |\r\n| `GdataCompositeMedia` | `object` | gdata |\r\n| `GdataContentTypeInfo` | `object` | gdata |\r\n| `GdataDiffChecksumsResponse` | `object` | gdata |\r\n| `GdataDiffDownloadResponse` | `object` | gdata |\r\n| `GdataDiffUploadRequest` | `object` | gdata |\r\n| `GdataDiffUploadResponse` | `object` | gdata |\r\n| `GdataDiffVersionResponse` | `object` | gdata |\r\n| `GdataDownloadParameters` | `object` | gdata |\r\n| `GdataMedia` | `object` | gdata |\r\n| `GdataObjectId` | `object` | gdata |\r\n| `Job` | `object` | A job creating reports of a specific type. |\r\n| `ListJobsResponse` | `object` | Response message for ReportingService.ListJobs. |\r\n| `ListReportTypesResponse` | `object` | Response message for ReportingService.ListReportTypes. |\r\n| `ListReportsResponse` | `object` | Response message for ReportingService.ListReports. |\r\n| `Report` | `object` | A report's metadata including the URL from which the report itself can be downloaded. |\r\n| `ReportType` | `object` | A report type. |\n\nFile v1.2.4:skill-card.md\n\n## Description:\n\nYouTube API helps agents use MyBrandMetrics to search YouTube, retrieve video and channel data, browse playlists and comments, check live broadcasts, query YouTube Analytics, and work with YouTube Reporting jobs.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[clawbus](https://clawhub.ai/user/clawbus)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal developers and agents use this skill to choose YouTube Data API, YouTube Analytics API, and YouTube Reporting API endpoints and build MyBrandMetrics Discovery API requests for connected YouTube accounts.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill can guide account-changing YouTube operations, including upload, update, delete, moderation, subscription, playlist, live-stream, and reporting-job actions.\n\nMitigation: Require explicit confirmation of the connected account, endpoint, target resource ID, request parameters, and intended result before running any account-changing request.\n\nRisk: A MyBrandMetrics API key may carry YouTube read, write, upload, analytics, or reporting authority for connected accounts.\n\nMitigation: Use only a key whose granted YouTube permissions are acceptable for the task, never expose keys in files or chat, and reconnect YouTube with narrower permissions when appropriate.\n\nRisk: Changing the API base URL could route credentialed requests away from the intended MyBrandMetrics host.\n\nMitigation: Keep MYBRANDMETRI\n\nArchive v1.2.3: 10 files, 34526 bytes\n\nFiles: agents/openai.yaml (254b), references/catalog.json (182892b), references/curl.md (2742b), references/index.md (837b), references/mybrandmetrics-api.md (1935b), references/services/youtube-analytics-v2.md (14430b), references/services/youtube-data-v3.md (147598b), references/services/youtube-reporting-v1.md (11849b), SKILL.md (6195b), _meta.json (146b)\n\nArchive v1.2.2: 10 files, 34614 bytes\n\nFiles: agents/openai.yaml (254b), references/catalog.json (182892b), references/curl.md (2742b), references/index.md (837b), references/mybrandmetrics-api.md (1935b), references/services/youtube-analytics-v2.md (14430b), references/services/youtube-data-v3.md (147598b), references/services/youtube-reporting-v1.md (11849b), SKILL.md (6422b), _meta.json (146b)\n\nArchive v1.2.1: 10 files, 34411 bytes\n\nFiles: agents/openai.yaml (254b), references/catalog.json (182892b), references/curl.md (2742b), references/index.md (837b), references/mybrandmetrics-api.md (1935b), references/services/youtube-analytics-v2.md (14430b), references/services/youtube-data-v3.md (147598b), references/services/youtube-reporting-v1.md (11849b), SKILL.md (5626b), _meta.json (146b)\n\nArchive v1.2.0: 10 files, 34421 bytes\n\nFiles: agents/openai.yaml (262b), references/catalog.json (182892b), references/curl.md (2742b), references/index.md (837b), references/mybrandmetrics-api.md (1935b), references/services/youtube-analytics-v2.md (14430b), references/services/youtube-data-v3.md (147598b), references/services/youtube-reporting-v1.md (11849b), SKILL.md (5650b), _meta.json (146b)\n\nArchive v1.1.0: 6 files, 25336 bytes\n\nFiles: agents/openai.yaml (245b), references/agent_integration.md (864b), references/endpoints_summary.md (68950b), references/youtube_endpoint_catalog.json (177335b), SKILL.md (5524b), _meta.json (146b)\n\nArchive v1.0.0: 11 files, 122994 bytes\n\nFiles: agents/openai.yaml (245b), references/agent_integration.md (876b), references/discovery_cache/youtube.json (372397b), references/discovery_cache/youtubeAnalytics.json (28542b), references/discovery_cache/youtubeReporting.json (22819b), references/endpoints_summary.md (69041b), references/openapi_proxy.json (314075b), references/youtube_endpoint_catalog.json (177335b), scripts/sync_discovery.py (28785b), SKILL.md (5932b), _meta.json (146b)","readmeExcerpt":"Skill: YouTube API Owner: clawbus Summary: Use when YouTube data is needed through MyBrandMetrics: search YouTube videos, get video metadata, inspect channel info, browse playlists, list comments, che... Tags: analytics:1.2.4, channel:1.2.4, creator:1.2.4, google-api:1.2.4, latest:1.2.4, metadata:1.2.4, playlists:1.2.4, reporting:1.2.4, video:1.2.4, youtube:1.2.4, youtube-api:1.2.4, youtube-data:1.2.4 Version history","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"export MYBRANDMETRICS_API_KEY=\"YOUR_API_KEY\"\nexport MYBRANDMETRICS_API_BASE_URL=\"https://api.mybrandmetrics.com\""},{"language":"text","snippet":"X-API-Key: YOUR_API_KEY"},{"language":"bash","snippet":"curl -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\"},{"language":"bash","snippet":"curl -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\n  \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/channels?part=snippet,contentDetails,statistics&mine=true\""},{"language":"bash","snippet":"curl -sS \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtubeAnalytics/reports\" \\\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\n  --url-query \"ids=channel==MINE\" \\\n  --url-query \"startDate=2026-01-01\" \\\n  --url-query \"endDate=2026-01-31\" \\\n  --url-query \"metrics=views,estimatedMinutesWatched\""},{"language":"bash","snippet":"curl -sS \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtubeAnalytics/reports\" \\\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\n  --url-query \"ids=channel==MINE\" \\\n  --url-query \"startDate=2026-01-01\" \\\n  --url-query \"endDate=2026-01-31\" \\\n  --url-query \"metrics=views,estimatedMinutesWatched\""}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: YouTube API\ndescription: >\n  Use when YouTube data is needed through MyBrandMetrics: search YouTube\n  videos, get video metadata, inspect channel info, browse playlists, list\n  comments, check live broadcasts, query YouTube Analytics, and work with\n  YouTube Reporting jobs. Covers YouTube Data API v3, YouTube Analytics API v2,\n  and YouTube Reporting API v1 after YouTube is connected in MyBrandMetrics.\n---\n\n# YouTube API\n\nSearch YouTube videos, get YouTube video metadata, inspect channel info, browse\nplaylists, list comments, check live broadcasts, query YouTube Analytics, and\nwork with YouTube Reporting jobs through the MyBrandMetrics Discovery API.\n\nUse this skill when YouTube content or YouTube account data is needed after\nYouTube is connected in MyBrandMetrics. It covers YouTube Data API v3, YouTube\nAnalytics API v2, and YouTube Reporting API v1 from one interface.\n\nThis skill is for YouTube data, analytics, reporting, and upload-route\nworkflows. It does not provide YouTube transcripts.\n\nWebsite: [https://www.clawbus.com/](https://www.clawbus.com/)  \nMyBrandMetrics API: [https://mybrandmetrics.com/](https://mybrandmetrics.com/)\n\n## Core Capabilities\n\n| Capability | Details |\n| --- | --- |\n| YouTube API access | Work with YouTube Data API v3, YouTube Analytics API v2, and YouTube Reporting API v1 from one skill. |\n| YouTube search results | Search YouTube videos, channels, playlists, and live content with query, channel, date, region, and result filters. |\n| Video metadata | Get YouTube video title, description, thumbnails, publish date, duration, status, and statistics. |\n| Channel info | Get YouTube channel details, subscriptions, playlists, playlist items, and related resources. |\n| Comments and discussions | List YouTube comment threads and related comment data for videos or channels. |\n| Live broadcasts | List and inspect YouTube live broadcasts and related live resources. |\n| Upload routes | Use YouTube video upload routes, including multipart and resumable upload patterns. |\n| YouTube Analytics | Query YouTube Analytics reports for connected channels, videos, and creator content. |\n| YouTube Reporting | List YouTube Reporting API report types, create reporting jobs, and inspect generated reporting resources. |\n| Endpoint references | Use generated service references and a compact catalog for endpoint lookup. |\n\n## Setup Flow\n\n1. Open [https://mybrandmetrics.com/](https://mybrandmetrics.com/) and sign in\n   with Google.\n2. In MyBrandMetrics, open **Data sources**.\n3. Connect YouTube as a data source.\n4. Wait until the MyBrandMetrics YouTube connection is ready.\n5. In [https://mybrandmetrics.com/](https://mybrandmetrics.com/), get the\n   MyBrandMetrics API key.\n6. Install the `clawbus-youtube-unified-api` skill.\n7. Start a YouTube search, channel lookup, playlist workflow, analytics query,\n   reporting job, or upload workflow with natural-language instructions or\n   direct Discovery API requests.\n\n## Authentication\n\nUse the MyBr"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn713zgmx26jep6vrh0kbmmkw986a4xc\",\n  \"slug\": \"clawbus-youtube-unified-api\",\n  \"version\": \"1.2.4\",\n  \"publishedAt\": 1779263297373\n}"},{"path":"references/catalog.json","content":"{\r\n  \"sources\": {\r\n    \"youtube\": \"https://youtube.googleapis.com/$discovery/rest?version=v3\",\r\n    \"youtubeAnalytics\": \"https://youtubeanalytics.googleapis.com/$discovery/rest?version=v2\",\r\n    \"youtubeReporting\": \"https://youtubereporting.googleapis.com/$discovery/rest?version=v1\"\r\n  },\r\n  \"services\": {\r\n    \"youtube\": {\r\n      \"title\": \"YouTube Data API v3\",\r\n      \"mybrandmetrics_base_url\": \"https://api.mybrandmetrics.com\",\r\n      \"reference\": \"references/services/youtube-data-v3.md\",\r\n      \"method_count\": 83,\r\n      \"schema_count\": 199\r\n    },\r\n    \"youtubeAnalytics\": {\r\n      \"title\": \"YouTube Analytics API v2\",\r\n      \"mybrandmetrics_base_url\": \"https://api.mybrandmetrics.com\",\r\n      \"reference\": \"references/services/youtube-analytics-v2.md\",\r\n      \"method_count\": 8,\r\n      \"schema_count\": 12\r\n    },\r\n    \"youtubeReporting\": {\r\n      \"title\": \"YouTube Reporting API v1\",\r\n      \"mybrandmetrics_base_url\": \"https://api.mybrandmetrics.com\",\r\n      \"reference\": \"references/services/youtube-reporting-v1.md\",\r\n      \"method_count\": 8,\r\n      \"schema_count\": 18\r\n    }\r\n  },\r\n  \"method_count\": 99,\r\n  \"methods\": [\r\n    {\r\n      \"service\": \"youtube\",\r\n      \"id\": \"youtube.abuseReports.insert\",\r\n      \"resource\": \"abuseReports\",\r\n      \"name\": \"insert\",\r\n      \"http_method\": \"POST\",\r\n      \"path\": \"youtube/v3/abuseReports\",\r\n      \"mybrandmetrics_path\": \"/discovery/youtube/abuseReports\",\r\n      \"flat_path\": \"youtube/v3/abuseReports\",\r\n      \"required_parameters\": [\r\n        \"part\"\r\n      ],\r\n      \"parameters\": {\r\n        \"part\": {\r\n          \"location\": \"query\",\r\n          \"required\": true,\r\n          \"type\": \"string\",\r\n          \"repeated\": true,\r\n          \"enum\": null\r\n        }\r\n      },\r\n      \"request_schema\": \"AbuseReport\",\r\n      \"response_schema\": \"AbuseReport\",\r\n      \"oauth_scopes\": [\r\n        \"https://www.googleapis.com/auth/youtube\",\r\n        \"https://www.googleapis.com/auth/youtube.force-ssl\"\r\n      ],\r\n      \"has_media_upload\": false,\r\n      \"mybrandmetrics_upload_path\": null,\r\n      \"supports_media_download\": false,\r\n      \"curl\": \"curl -sS -X POST \\\"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/abuseReports\\\" \\\\\\n  -H \\\"X-API-Key: $MYBRANDMETRICS_API_KEY\\\" \\\\\\n  -H \\\"Accept: application/json\\\" \\\\\\n  --json \\\"@body.json\\\" \\\\\\n  --url-query \\\"part=snippet\\\"\",\r\n      \"upload_curl\": null\r\n    },\r\n    {\r\n      \"service\": \"youtube\",\r\n      \"id\": \"youtube.activities.list\",\r\n      \"resource\": \"activities\",\r\n      \"name\": \"list\",\r\n      \"http_method\": \"GET\",\r\n      \"path\": \"youtube/v3/activities\",\r\n      \"mybrandmetrics_path\": \"/discovery/youtube/activities\",\r\n      \"flat_path\": \"youtube/v3/activities\",\r\n      \"required_parameters\": [\r\n        \"part\"\r\n      ],\r\n      \"parameters\": {\r\n        \"channelId\": {\r\n          \"location\": \"query\",\r\n          \"required\": false,\r\n          \"type\": \"string\",\r\n          \"repeated\": false,\r\n          \"enum\": null\r\n        },\r\n        \"home\": {\r\n          \"location\": \"qu"},{"path":"references/curl.md","content":"# Curl Usage\n\n## Authentication\n\nUse a MyBrandMetrics API key in the `X-API-Key` header.\n\n```bash\nexport MYBRANDMETRICS_API_KEY=\"YOUR_API_KEY\"\nexport MYBRANDMETRICS_API_BASE_URL=\"https://api.mybrandmetrics.com\"\n```\n\nSimple example:\n\n```bash\ncurl -H \"X-API-Key: YOUR_API_KEY\" \"https://api.mybrandmetrics.com/discovery/youtube/channels?part=snippet,contentDetails,statistics&mine=true\"\n```\n\nEnvironment variable example:\n\n```bash\ncurl -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/channels?part=snippet,contentDetails,statistics&mine=true\"\n```\n\n## Discovery API\n\nRoute shape:\n\n```text\n/discovery/{service}/{path}\n```\n\nSupported service names:\n\n- `youtube`\n- `youtubeAnalytics`\n- `youtubeReporting`\n\n## Query Parameters\n\nPrefer `--url-query` for query strings. It appends parameters to the URL\nwithout changing the request body, so it works for GET, POST, PATCH, PUT, and\nDELETE.\n\n```bash\ncurl -sS \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/channels\" \\\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\n  --url-query \"part=snippet,statistics\" \\\n  --url-query \"mine=true\"\n```\n\nThe method references list each parameter's location. Path parameters appear\ninside the URL path. Query parameters should be passed with `--url-query`.\n\n## JSON Bodies\n\nFor methods with a request schema, place the JSON request body in `body.json`\nand call:\n\n```bash\ncurl -sS -X POST \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/playlists\" \\\n  -H \"X-API-Key: $MYBRANDMETRICS_API_KEY\" \\\n  --json \"@body.json\" \\\n  --url-query \"part=snippet,status\"\n```\n\nIf the local curl version does not support `--json`, use:\n\n```bash\n-H \"Content-Type: application/json\" --data-binary \"@body.json\"\n```\n\n## Uploads\n\nMethods with media upload support include upload examples in the service\nreferences. Set:\n\n```bash\nexport MEDIA_FILE=\"video.mp4\"\nexport MIME_TYPE=\"video/mp4\"\n```\n\nFor multipart uploads, use `-F` and explicitly define the metadata content\ntype. For resumable uploads, include upload content headers and then upload\nbytes to the resumable upload session URL when the API returns one.\n\n## Downloads\n\nMethods marked as supporting media download may require `alt=media`. Save\nbinary output with `-o`.\n\n## Error Handling\n\nUse `-fS` when scripts should fail on non-2xx responses, or capture both body\nand status:\n\n```bash\ncurl -sS -w \"\\n%{http_code}\\n\" -o response.json \"${MYBRANDMETRICS_API_BASE_URL:-https://api.mybrandmetrics.com}/discovery/youtube/channels\"\n```\n\nErrors generally return a JSON object with an `error` field. If the connected\nYouTube account needs more access, ask the user to reconnect YouTube in\nMyBrandMetrics."},{"path":"references/index.md","content":"# YouTube Unified API References\n\nThis reference set is generated from YouTube discovery documents and adapted for\ncurl-based calls through the MyBrandMetrics Discovery API.\n\n## Load Order\n\n1. Read `curl.md` for MyBrandMetrics API key authentication, request\n   construction, uploads, downloads, and error handling.\n2. Read `mybrandmetrics-api.md` when selecting a connected YouTube account or\n   building Discovery API routes.\n3. Read the relevant service file under `services/` for endpoint-specific\n   parameters and curl examples.\n4. Use `catalog.json` for programmatic lookup or tool schema generation.\n\n## Coverage\n\n- YouTube Data API v3\n- YouTube Analytics API v2\n- YouTube Reporting API v1\n- 99 generated methods\n- Upload and download patterns where supported\n\nRaw discovery snapshots are not included in this published package."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1399,"uniquenessScore":38,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T19:41:33.250Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-10T19:41:33.250Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T21:47:41.965Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}