list_my_videos
List your own YouTube videos with details like titles, view counts, and privacy status. Results are sorted newest first, with pagination support.
Instructions
List videos on the authenticated channel (newest first via the uploads playlist). Returns video IDs, titles, view counts, and privacy status.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| max_results | No | ||
| page_token | No |
Implementation Reference
- src/youtube/client.ts:125-127 (helper)listMyUploads() method that delegates to listMyVideoIdsViaUploadsPlaylist for fetching the authenticated user's uploaded videos.
listMyUploads(maxResults = 25, pageToken?: string): Promise<VideoListResponse> { return this.listMyVideoIdsViaUploadsPlaylist(maxResults, pageToken); } - src/youtube/client.ts:129-158 (helper)listMyVideoIdsViaUploadsPlaylist() fetches the uploads playlist from the channel, retrieves video IDs, then fetches full video details (snippet, status, statistics, contentDetails).
private async listMyVideoIdsViaUploadsPlaylist( maxResults: number, pageToken?: string, ): Promise<VideoListResponse> { const channels = await this.dataGet<{ items: Channel[] }>("/channels", { part: "contentDetails", mine: "true", }); const uploadsPlaylist = channels.items[0]?.contentDetails?.relatedPlaylists?.uploads; if (!uploadsPlaylist) { return { items: [] }; } const playlistItems = await this.dataGet<{ items: Array<{ contentDetails: { videoId: string } }>; nextPageToken?: string; }>("/playlistItems", { part: "contentDetails", playlistId: uploadsPlaylist, maxResults: String(maxResults), pageToken, }); const ids = playlistItems.items.map((i) => i.contentDetails.videoId); if (ids.length === 0) return { items: [], nextPageToken: playlistItems.nextPageToken }; const videos = await this.dataGet<{ items: Video[] }>("/videos", { part: "snippet,status,statistics,contentDetails", id: ids.join(","), }); return { items: videos.items, nextPageToken: playlistItems.nextPageToken }; }