{"id":49341072,"url":"https://github.com/lucaserrnotfound/clipject","last_synced_at":"2026-04-27T04:02:44.386Z","repository":{"id":333298067,"uuid":"1136169745","full_name":"LucasErrNotFound/Clipject","owner":"LucasErrNotFound","description":"A Discord bot built with D++ and Cobalt API that downloads media from Instagram, TikTok, and Facebook, then injects it directly into Discord channels as raw video files with automatic cleanup","archived":false,"fork":false,"pushed_at":"2026-01-18T15:00:05.000Z","size":11536,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-18T20:55:52.010Z","etag":null,"topics":["bot","cpp","discord","discord-bot","dpp","media-downloader"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LucasErrNotFound.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-17T07:30:13.000Z","updated_at":"2026-01-18T15:21:05.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/LucasErrNotFound/Clipject","commit_stats":null,"previous_names":["lucaserrnotfound/clipject"],"tags_count":null,"template":false,"template_full_name":"brainboxdotcc/windows-bot-template","purl":"pkg:github/LucasErrNotFound/Clipject","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LucasErrNotFound%2FClipject","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LucasErrNotFound%2FClipject/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LucasErrNotFound%2FClipject/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LucasErrNotFound%2FClipject/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LucasErrNotFound","download_url":"https://codeload.github.com/LucasErrNotFound/Clipject/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LucasErrNotFound%2FClipject/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32321940,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T23:26:28.701Z","status":"online","status_checked_at":"2026-04-27T02:00:06.769Z","response_time":128,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bot","cpp","discord","discord-bot","dpp","media-downloader"],"created_at":"2026-04-27T04:02:36.215Z","updated_at":"2026-04-27T04:02:44.380Z","avatar_url":"https://github.com/LucasErrNotFound.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Clipject - Social Media Clip Downloader Discord Bot\n\nA Discord bot built with [D++](https://github.com/brainboxdotcc/DPP) that downloads and injects media content from popular social platforms directly into your Discord server. Powered by [Cobalt API](https://github.com/imputnet/cobalt) for reliable media extraction.\n\n## Features\n\n- 🎥 Download videos and media from multiple platforms:\n  - Instagram (posts, reels, IGTV)\n  - TikTok (videos and short links)\n  - Facebook (videos, reels, watch links)\n- 📤 Automatic upload to Discord channels\n- ⚡ Fast processing with real-time status updates\n- 🗑️ Automatic cleanup of temporary files\n- 🏗️ Modular architecture with separation of concerns\n\n## Prerequisites\n\n- **Visual Studio 2022** (with C++ development tools)\n- **Windows 10** (x64 or x86)\n- **Cobalt API Instance** (self-hosted or remote)\n- **Discord Bot Token** from [Discord Developer Portal](https://discord.com/developers/applications)\n\n## Installation\n\n### 1. Clone the Repository\n```bash\ngit clone https://github.com/LucasErrNotFound/clipject.git\ncd clipject\n```\n\n### 2. Set Up Cobalt API\n\nFollow the [Cobalt self-hosting guide](https://github.com/imputnet/cobalt/blob/main/docs/run-an-instance.md) to run your own instance.\n\n**Quick setup with Docker:**\n```bash\ndocker run -p 9000:9000 ghcr.io/imputnet/cobalt:latest\n```\n\n**Or configure .env file:**\n```env\nAPI_URL=\"http://localhost:9000/\"\nAPI_PORT=9000\n```\n\n### 3. Configure the Bot\n\nOpen `src/Config.cpp` and update:\n```cpp\nconst std::string BOT_TOKEN = \"YOUR_DISCORD_BOT_TOKEN_HERE\";\nconst std::string COBALT_API = \"http://localhost:9000/\"; // Your Cobalt instance URL\nconst bool KEEP_DOWNLOADED_FILES = false; // Set to true to keep downloaded files\nconst std::string DOWNLOAD_DIR = \"./downloads/\"; // Download directory\n```\n\n### 4. Build the Project\n\n1. Open `MyBot.sln` in Visual Studio 2022\n2. Select your configuration (Debug/Release, x64/x86)\n3. Press `F7` or **Build** → **Build Solution**\n4. The executable will be in `x64/Debug/` or `x64/Release/`\n\n## Usage\n\n### Starting the Bot\n\n1. Run the compiled executable\n2. Wait for the \"Bot is ready!\" message\n3. Invite the bot to your Discord server with the appropriate permissions\n\n### Discord Commands\n\n#### `/inject`\nDownloads and posts media from social platforms.\n\n**Parameters:**\n- `link` (required) - URL from Instagram, TikTok, or Facebook\n\n**Example:**\n```\n/inject link: https://www.instagram.com/reel/ABC123/\n/inject link: https://www.tiktok.com/@user/video/1234567890\n/inject link: https://www.facebook.com/share/r/ABC123/\n```\n\n**Response Flow:**\n1. 🔍 Validating link...\n2. 📥 Downloading media from API...\n3. 💾 Downloading file...\n4. 📤 Uploading to Discord...\n5. ✅ Media injected successfully!\n\n## Supported Platforms\n\n| Platform | Supported Formats |\n|----------|------------------|\n| **Instagram** | Posts, Reels, IGTV |\n| **TikTok** | Videos, Short links (vm.tiktok.com, vt.tiktok.com) |\n| **Facebook** | Videos, Reels, Watch, Share links |\n| **YouTube** | ⚠️ Currently disabled |\n\n## Dependencies\n\n- **[D++ (DPP)](https://github.com/brainboxdotcc/DPP)** - Discord API library\n- **[libcurl](https://curl.se/libcurl/)** - HTTP client for API requests and downloads\n- **[JsonCpp](https://github.com/open-source-parsers/jsoncpp)** - JSON parsing\n- **[Cobalt API](https://github.com/imputnet/cobalt)** - Media extraction service\n\n## Troubleshooting\n\n### \"Failed to parse API response\"\n- Ensure Cobalt API is running and accessible\n- Check `COBALT_API` URL in Config.cpp\n- Verify network connectivity\n\n### \"Invalid link!\"\n- Confirm the URL matches supported format\n- Check regex patterns in `LinkValidator.cpp`\n\n### \"Failed to download the media file\"\n- Cobalt API may not support the specific content\n- Platform may have restrictions\n- Check Cobalt API logs\n\n### Bot doesn't respond\n- Verify bot token is correct\n- Check bot has necessary Discord permissions\n- Ensure slash commands are registered (wait ~1 hour after first run)\n\n## Required Discord Permissions\n\n- `applications.commands` - Use slash commands\n- `bot` - Basic bot functionality\n- Send Messages\n- Attach Files\n- Use Slash Commands\n\n**Bot Invite URL:**\n```\nhttps://discord.com/api/oauth2/authorize?client_id=YOUR_CLIENT_ID\u0026permissions=274878024768\u0026scope=bot%20applications.commands\n```\n\n## License\n\nThis project is licensed under the **GNU Affero General Public License v3.0 (AGPL-3.0)**.\n\nThis means:\n- ✅ You can use, modify, and distribute this software\n- ✅ You must disclose the source code of any modifications\n- ✅ You must license derivative works under AGPL-3.0\n- ✅ **If you run a modified version on a server, you must make the source available to users**\n\nSee the [LICENSE](LICENSE) file for full details, or visit [https://www.gnu.org/licenses/agpl-3.0.en.html](https://www.gnu.org/licenses/agpl-3.0.en.html)\n\n**Note:** This project is based on the [D++ Windows Bot Template](https://github.com/brainboxdotcc/windows-bot-template) which was originally licensed under Apache 2.0. The modifications and additions in this project are licensed under AGPL-3.0.\n\n## Acknowledgments\n\n- [D++ Discord Library](https://github.com/brainboxdotcc/DPP) by brainboxdotcc\n- [Cobalt API](https://github.com/imputnet/cobalt) by imputnet\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucaserrnotfound%2Fclipject","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flucaserrnotfound%2Fclipject","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucaserrnotfound%2Fclipject/lists"}