A GitHub template for automatic VOD archiving to IA using Tubeup on Github, powered by GitHub Actions
- Archive videos from various platforms to IA
- Manual workflow dispatch with custom URL input
- Automatic retry mechanism for failed uploads
- Metadata preservation
- Support for all yt-dlp compatible platforms
- Easy setup
- Use this template to create your own repository
- Add IA credentials as repository secrets
- Run workflow with video URL to archive
- Check Internet Archive for the video
Tubeup supports all platforms compatible with yt-dlp, including:
- YouTube
- Vimeo
- Twitch VODs
- X
- TikTok
- Dailymotion
- Facebook And a lot more
- Create an Internet Archive account at archive.org
- Add your credentials as repository secrets:
IA_EMAIL: Your Internet Archive emailIA_PASSWORD: Your Internet Archive password
- Go to the "Actions" tab in your repository
- Select "Archive Video to IA"
- Click "Run workflow"
- Enter the video URL you want to archive
- Click "Run workflow" again
The workflow will:
- Download the video using yt-dlp
- Upload it to Internet Archive
- Preserve metadata and descriptions
- Create a permanent archive link
The GitHub Action workflow:
- Triggers on manual dispatch
- Can be triggered with custom video URLs
- Uses Python to install and run tubeup
- Installs ffmpeg for videos
- Caches dependencies for faster execution
- Authenticates with IA using secrets
Add these secrets in your repository settings:
IA_EMAIL=your_ia_email
IA_PASSWORD=your_ia_password
Edit .github/workflows/tubeup.yml to customize:
- Add automatic triggering
- Modify tubeup parameters
- Add additional processing steps
- Change dependencies
The workflow uses this default URL for testing:
default: 'https://youtu.be/dQw4w9WgXcQ'You can change it by editing the workflow file
├── .github/
│ └── workflows/
│ └── tubeup.yml # workflow
├── .gitattributes
├── LICENSE
└── README.md
You can modify the workflow to put additional parameters to tubeup, for example:
- name: Run tubeup
run: |
tubeup "${{ github.event.inputs.url }}" --metadata="creator:something" --title="something"Create a text file with multiple URLs and modify the workflow to process them all:
- name: Archive multiple videos
run: |
while IFS= read -r url; do
tubeup "$url"
done < urls.txtWhen downloading from YouTube you may see an error such as ERROR: [youtube]: Sign in to confirm you’re not a bot., YouTube is requesting a logged‑in session
Pass cookies to yt‑dlp with --cookies-from-browser (recommended) or --cookies path/to/cookies.txt
See the yt‑dlp FAQ on passing cookies and the guide on exporting YouTube cookies for details
- Verify your IA credentials
- Ensure secrets are properly set in the repo settings
- Verify that the video URL is accessible
- Check if the platform is supported by yt-dlp
- Some websites may require cookies or authentication
- Internet Archive may have rate limits
- Large videos may or may not timeout
- Check the workflow logs in the Actions tab
- Submit an issue
When using this tool, please:
- Respect copyright and platform terms of service
- Archive only content you have permission to preserve
- Follow Internet Archive's content guidelines
- Be mindful of privacy and sensitive content Any videos uploaded with this tool are NOT my responsbility in any way
All contributions to the repo are welcome
Tubeup on Github is licensed under the MIT License, see LICENSE for more details
If issues happen:
- Check the Troubleshooting section section
- Check the workflow logs
- Check the tubeup documentation
- Create an issue with the detailed error logs
Made with ❤️ and 🧻 by Andres99 using GitHub Actions