README Generator

How to Show Your Latest YouTube Videos in Your GitHub Profile README

Embedding your latest YouTube videos in your GitHub profile README connects your coding content to your developer identity. If you produce technical tutorials, code walkthroughs, or developer education content, showing recent videos directly on your profile gives visitors a reason to follow you and signals that you invest in knowledge sharing. This guide covers the DenverCoder1/github-readme-youtube-stats GitHub Action, which reads your YouTube channel's RSS feed and updates your README automatically.

Quick Setup Steps

  1. 1

    Step 1: Find your YouTube Channel ID in YouTube Settings → Advanced Settings.

  2. 2

    Step 2: Get a YouTube Data API v3 key from Google Cloud Console and add it as YT_TOKEN repository secret.

  3. 3

    Step 3: Add <!-- YOUTUBE-CARDS:START --> and <!-- YOUTUBE-CARDS:END --> markers to your README.

  4. 4

    Step 4: Create .github/workflows/youtube-cards.yml using DenverCoder1/github-readme-youtube-stats@latest.

  5. 5

    Step 5: Run the workflow manually from the Actions tab, then verify the video list appears in your README.

What Is the YouTube Latest Videos Widget?

The github-readme-youtube-stats Action pulls your latest videos from your YouTube channel's public RSS feed and formats them as a list or table in a designated section of your README. It runs on a GitHub Actions schedule, committing an updated README whenever new videos are published.

The widget shows your most recent video titles, thumbnails (optional), view counts, and publish dates. For developers with active YouTube channels — particularly coding educators, tutorial creators, or live streamers — this is one of the highest-signal additions to a profile, demonstrating both technical knowledge and the ability to communicate it clearly.

How to Set Up YouTube Latest Videos

Follow these steps:

  1. Find your YouTube Channel ID. Visit your YouTube channel, go to Settings → Advanced Settings → Your channel ID (starts with UC...).
  2. Add comment markers to your README where videos should appear:
## Latest YouTube Videos
<!-- YOUTUBE-CARDS:START -->
<!-- YOUTUBE-CARDS:END -->
  1. Add a YT_TOKEN secret to your repository: a YouTube Data API v3 key from Google Cloud Console (free, requires enabling YouTube Data API v3).
  2. Create .github/workflows/youtube-cards.yml:
name: Update YouTube Cards
on:
  schedule:
    - cron: '0 0 * * *'
  workflow_dispatch:
permissions:
  contents: write
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: DenverCoder1/github-readme-youtube-stats@latest
        with:
          youtube_api_key: ${{ secrets.YT_TOKEN }}
          channel_id: YOUR_CHANNEL_ID
          comment_tag_name: YOUTUBE-CARDS

Customizing YouTube Video Display

The Action supports configuration for how videos are displayed:

  • max_videos: Number of videos to show (default: 6)
  • youtube_api_key: Your YouTube Data API v3 key (required)
  • channel_id: Your YouTube channel ID starting with UC...
  • comment_tag_name: The identifier used in your README comment markers

For a more lightweight approach without the YouTube API key, use the gautamkrishnar/blog-post-workflow Action with YouTube's public RSS feed:

- uses: gautamkrishnar/blog-post-workflow@v1
  with:
    feed_list: "https://www.youtube.com/feeds/videos.xml?channel_id=YOUR_CHANNEL_ID"
    comment_tag_name: YOUTUBE
    template: "- [$title]($url)"
    max_post_count: 5

This simpler approach shows video titles as links without thumbnails but requires no API key.

Troubleshooting YouTube Videos in README

If the Action fails with a 'YouTube API quota exceeded' error, note that YouTube Data API v3 has a daily quota of 10,000 units. Each execution uses approximately 100 units — a daily schedule will use 100 units per day, well within the free quota. If you're running the workflow multiple times manually, you may temporarily exhaust the daily limit.

If the comment markers are not being updated, check that the comment_tag_name parameter in your workflow matches exactly the tag used in your README. Case and spacing matter — YOUTUBE-CARDS in the YAML must match <!-- YOUTUBE-CARDS:START --> in the README.

For channels with very few videos or no recently uploaded content, the Action may commit no changes. The README section will remain as last updated until new videos are published.

Frequently Asked Questions

How do I add my latest YouTube videos to my GitHub README?

Add YOUTUBE-CARDS comment markers to your README, create a GitHub Actions workflow using DenverCoder1/github-readme-youtube-stats with your YouTube API key and channel ID, then run it manually for the first update. Videos refresh daily on schedule. For a no-API-key approach, use blog-post-workflow with YouTube's RSS feed URL.

Do I need a YouTube API key to show videos in my README?

The DenverCoder1/github-readme-youtube-stats Action requires a YouTube Data API v3 key (free from Google Cloud Console). As an alternative, the blog-post-workflow approach uses YouTube's public RSS feed which needs no API key and shows video titles as plain links.

Why are my YouTube videos not updating in my GitHub README?

Verify that the comment markers in your README exactly match the comment_tag_name in your workflow (default: YOUTUBE-CARDS). Check the Actions tab for error logs. If using the YouTube API, ensure your API key is valid and the YouTube Data API v3 is enabled in your Google Cloud Console project.

How many videos can I show in my GitHub README?

The github-readme-youtube-stats Action defaults to 6 videos. Adjust with the max_videos parameter. For most GitHub profiles, 3-5 recent videos works well — it shows you are active without overwhelming the profile layout. Wrap the section in a details/summary block if you want to keep it collapsible.

From Our Blog

Generate Your GitHub Profile README

Generate a GitHub profile README featuring YouTube Latest Videos with AI

Try It Free — No Sign Up