π Enhanced HomeTube Fork with Hooks & Webhooks
Fork of EgalitarianMonkey/hometube with automation capabilities
This fork extends the original HomeTube with powerful automation features:
Execute custom scripts at different download stages:
- π ON_DOWNLOAD_START: Triggered when download begins
- β ON_DOWNLOAD_SUCCESS: Triggered when download completes successfully
- β ON_DOWNLOAD_FAILURE: Triggered when download fails
Example use cases:
- Send notifications to Discord/Slack/Telegram
- Update media server libraries automatically
- Log download analytics
- Trigger post-processing workflows
Receive HTTP requests to auto-populate download fields:
- POST endpoint:
/webhookaccepts JSON payloads - GET parameters:
?url=...&filename=...for browser integration - Browser bookmarklets: One-click download from any video page
- External integration: Connect with automation tools, browser extensions, mobile apps
- π― One-Click Downloads: Paste URL β Get perfectly organized video
- π« Ad-Free Content: Block videos' sponsors and ads
- π¬ Advanced Processing: Cut clips, embed subtitles, convert formats
- π Cookie Authentication: Access restricted/member-only videos
- π₯ 1800+ Video Sources: YouTube, Reddit, Vimeo, TikTok, Twitch, etc.
For complete feature documentation, see the original repository.
Configure custom scripts in your .env file:
# Execute shell commands on download events
ON_DOWNLOAD_START=echo "Download started: {URL}" >> /data/logs/downloads.log
ON_DOWNLOAD_SUCCESS=curl -X POST https://your-webhook.com/notify -d '{"status":"success","file":"{OUTPUT_PATH}"}'
ON_DOWNLOAD_FAILURE=echo "Download failed: {STATUS} for {URL}" >> /data/logs/errors.logAvailable placeholders:
{URL}- Video URL{FILENAME}- Target filename{OUTPUT_PATH}- Full path to downloaded file{STATUS}- Download status/error message{START_SEC}/{END_SEC}- Section timestamps (if cutting)
Note: The container includes ssh/scp (OpenSSH client) so hooks can securely copy files or execute remote commands on other machines using ssh user@host or scp {OUTPUT_PATH} user@host:/path/.
Create bookmarklets for one-click downloads:
javascript:window.open('http://your-hometube:8501/?url='+encodeURIComponent(window.location.href));Send JSON data to auto-populate fields:
curl -X POST http://your-hometube:8501/webhook \
-H "Content-Type: application/json" \
-d '{"url": "https://youtube.com/watch?v=...", "filename": "My Video"}'Direct browser navigation:
http://your-hometube:8501/?url=https://youtube.com/watch?v=...&filename=My Video
For detailed setup and usage instructions, refer to the original project documentation:
- Original Repository - Complete documentation
- Installation Guide - Setup instructions
- Usage Guide - Feature documentation
- Docker Guide - Container deployment
- Hook Scripts via Files - Running hook commands from mounted scripts
- Webhook API - Webhook endpoint details
This fork adds:
- Hook System: Execute custom scripts on download events
- Webhook Integration: HTTP endpoints for automation
- Browser Integration: Bookmarklets and GET parameter support
All original HomeTube features are preserved and fully compatible.
I really loved the original HomeTube project and wanted to expand it with some automation features that I found useful for my personal use case. The hook system and webhook integration allow for better integration with home automation setups and make the download workflow much more streamlined.
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).
See LICENSE file for details.
π£ HomeTube Hooked - Enhanced fork of EgalitarianMonkey/hometube