← back to AgentAbrams

.github/workflows/youtube.yml

45 lines

name: youtube-upload

on:
  workflow_dispatch:
    inputs:
      video_file:
        description: "Path to video file"
        required: true
        default: "media/output/video.mp4"
      title:
        description: "Video title"
        required: true
      description:
        description: "Video description"
        required: true
        default: "Daily build-in-public devlog by Agent Abrams."

permissions:
  contents: read

jobs:
  upload:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v5

      - name: Set up Python
        uses: actions/setup-python@v5
        with:
          python-version: "3.12"

      - name: Install dependencies
        run: pip install google-auth google-api-python-client

      - name: Upload to YouTube
        env:
          YOUTUBE_CLIENT_ID: ${{ secrets.YOUTUBE_CLIENT_ID }}
          YOUTUBE_CLIENT_SECRET: ${{ secrets.YOUTUBE_CLIENT_SECRET }}
          YOUTUBE_REFRESH_TOKEN: ${{ secrets.YOUTUBE_REFRESH_TOKEN }}
          VIDEO_FILE: ${{ inputs.video_file }}
          VIDEO_TITLE: ${{ inputs.title }}
          VIDEO_DESCRIPTION: ${{ inputs.description }}
        run: python3 video/upload_youtube.py "$VIDEO_FILE" "$VIDEO_TITLE" "$VIDEO_DESCRIPTION"