{"id":46496099,"url":"https://github.com/eolnmsuk/skipcord-3","last_synced_at":"2026-03-06T12:03:23.196Z","repository":{"id":311437852,"uuid":"1043249557","full_name":"EolnMsuk/SkipCord-3","owner":"EolnMsuk","description":"A powerful Discord Omegle + Music bot for people who stream Omegle via Discord. This bot enables others within the same VC to skip, refresh, start, or pause the Omegle session without host interaction.","archived":false,"fork":false,"pushed_at":"2026-02-02T04:43:49.000Z","size":993,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-02T15:42:19.783Z","etag":null,"topics":["bot","discord","music","omegle"],"latest_commit_sha":null,"homepage":"https://discord.gg/omeglestream","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EolnMsuk.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":null,"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":"2025-08-23T13:02:59.000Z","updated_at":"2026-02-02T04:43:52.000Z","dependencies_parsed_at":"2025-08-24T18:17:54.386Z","dependency_job_id":"76bdc0e0-cb97-45a8-b754-00ca8475941b","html_url":"https://github.com/EolnMsuk/SkipCord-3","commit_stats":null,"previous_names":["eolnmsuk/skipcord-3"],"tags_count":38,"template":false,"template_full_name":null,"purl":"pkg:github/EolnMsuk/SkipCord-3","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EolnMsuk%2FSkipCord-3","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EolnMsuk%2FSkipCord-3/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EolnMsuk%2FSkipCord-3/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EolnMsuk%2FSkipCord-3/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EolnMsuk","download_url":"https://codeload.github.com/EolnMsuk/SkipCord-3/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EolnMsuk%2FSkipCord-3/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30175911,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T11:48:51.886Z","status":"ssl_error","status_checked_at":"2026-03-06T11:48:51.460Z","response_time":250,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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","discord","music","omegle"],"created_at":"2026-03-06T12:03:14.452Z","updated_at":"2026-03-06T12:03:23.180Z","avatar_url":"https://github.com/EolnMsuk.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SkipCord-3: Discord Omegle Music Bot\n\nThis bot integrates a group Omegle screenshare to a Discord VC, allowing the VC users to actively Skip, Report, Pause etc through dynamically embedded buttons. It safeguards your community with intelligent auto-moderation and includes a complete music system, automated ban detection with evidence logging and detailed daily analytics.\n\n  - [Key Features](#-key-features)\n  - [Commands](#-command-list)\n  - [How to Setup](#%EF%B8%8F-setup--configuration)\n  - [Donate](#donate)\n\n## ✨ Key Features\n\n### 🌐 Interactive Stream Control\n\n  * **Intuitive Button Menus**: Users control the stream (`!skip` ⏭️, `!refresh` 🔄, `!report` 🚩) and music (`!mskip`, `!mpauseplay`, `!mclear`) with persistent button menus. Requires being in the Streaming VC with camera on for most actions.\n  * **Cloudflare \u0026 Security Bypass**: Includes advanced logic to detect and click \"Verify you are human\" (Cloudflare/Turnstile) checkboxes inside iframes, ensuring the stream recovers automatically after refreshes.\n  * **Global Hotkeys**: Configure system-wide keyboard shortcuts to trigger commands like `!skip`, `!mskip`, `!mpauseplay`, and volume controls from anywhere on the host machine.\n  * **Auto-Start**: Automatically starts the stream by running `!skip` as soon as the first user joins the streaming VC with their camera on (configurable).\n  * **Smart Auto-Pause \u0026 Graceful Shutdown**: Triggers a refresh *only* when the last user leaves. Includes a **14-second grace period** prevents the bot from rapidly toggling security tasks if a user rejoins quickly.\n  * **Public Action Feed**: Button commands like `!skip` are announced publicly in the command channel (with auto-delete) for better transparency.\n\n\u003cimg width=\"355\" height=\"250\" alt=\"omegle\" src=\"https://github.com/user-attachments/assets/0acbceb4-0e08-46ad-85c6-0c6e6beb5702\" /\u003e\n\n### 🔔 Notification System\n\n* **Smart Leave Batching**: Consolidates mass departures into single summaries to prevent chat spam, automatically highlighting users with roles.\n* **Rich Moderation Logs**: Real-time, color-coded embeds for bans, kicks, timeouts, and Punishment VC moves, fetching reason and moderator details automatically from the audit logs.\n* **New Member Intel**: Join alerts include account creation dates to instantly spot potential alt accounts.\n* **Easy Toggles**: Enable or disable event logging instantly with `!enablenotifications` / `!disablenotifications`.\n\n\u003cimg width=\"400\" height=\"512\" alt=\"noti\" src=\"https://github.com/user-attachments/assets/3cfd9df8-5b80-4781-af40-576fcfc41b29\" /\u003e\n\n### 🎵 Integrated Music System\n\n  * **Versatile Playback**: Search/play songs from **YouTube** / **Spotify** / local files.\n  * **Role-Based Access**: Optionally restrict music control to specific roles using the `MUSIC_ROLES` configuration.\n  * **Spotify Limits**: To prevent queue flooding, Spotify playlist loading is capped at 100 tracks per request.\n  * **Interactive Queue**: View the song queue with `!q` and instantly jump to any song using a dropdown menu.\n  * **Persistent Playlists**: Save/Load/Delete named playlists.\n  * **Watchdog**: Ensures music playback automatically resumes if it stalls while listeners are present.\n\n\u003cimg width=\"420\" height=\"297\" alt=\"music\" src=\"https://github.com/user-attachments/assets/ce872a83-4f0e-46f0-90e5-4ab7de2a7cb0\" /\u003e\n\n### 🛡️ Advanced Moderation \u0026 Automation\n\n  * **Camera \u0026 Deafen Enforcement**: Automatically mutes/deafens users without cameras in moderated VCs. **New in v3.7:** Now also tracks and punishes users who remain **self-deafened** for longer than the allowed time (default 300s).\n  * **Persistent Moderation Report**: The `🛡️ Moderation Status 🛡️` menu updates in real-time (and persists through restarts) to show active timeouts, command-disabled users, and a log of recent manual untimeouts—identifying **exactly which moderator** removed a timeout.\n  * **Automatic Ban Handling**: Periodically captures browser screenshots. When a ban is detected, it saves the screenshots locally, **posts them to a Discord channel**, and logs details to a dedicated `ban.log`.\n  * **Daily Auto-Stats**: Posts a full analytics report (`!stats`) daily at a configured UTC time, then automatically clears VC time/usage statistics.\n\n\u003cimg width=\"349\" height=\"406\" alt=\"times\" src=\"https://github.com/user-attachments/assets/e4b23692-5e5c-422e-b7c6-bf7282aa668b\" /\u003e \n \n\u003cimg width=\"344\" height=\"160\" alt=\"mod\" src=\"https://github.com/user-attachments/assets/6a7fda25-6518-470a-8281-3525ac94663b\" /\u003e\n\n### 📊 Persistent State \u0026 Analytics\n\n  * **State Persistence**: All critical data—stats, violations, timeouts, event history, playlists, window geometry, and menu message IDs—is saved to `data.json`.\n  * **VC Time Tracking**: Tracks cumulative time users spend in moderated voice channels, with daily leaderboards (`!times`).\n\n\u003cimg width=\"1305\" height=\"953\" alt=\"console\" src=\"https://github.com/user-attachments/assets/9adaac05-e873-43ca-a7f9-a96af9728805\" /\u003e\n\n## 📋 Command List\n\n### 👤 User Commands\n\n*(Requires being in the Streaming VC with camera on)*\n\n* `!skip` - Skips the current Omegle user.\n* `!refresh` - Refreshes the Omegle page.\n* `!info` - Shows server info/rules.\n* `!rules` - Shows the server rules.\n* `!timer \u003c1-60\u003e` - Starts a timer (minutes).\n* `!timerstop` - Stops current user timer.\n* `!mskip` - Skips the current song.\n* `!mpp` - Toggles music play and pause.\n* `!vol 1-100` - Sets music volume (0-100).\n* `!m songname` - Searches for songs/URLs.\n* `!mclear` - Clears all songs from the search queue.\n* `!np` - Shows currently playing song.\n* `!q` - Displays the interactive song queue.\n* `!playlist \u003csave|load|list|delete\u003e [name]` - Manages playlists.\n\n### 🛡️ Admin Commands\n\n*(Requires Admin Role or being an Allowed User + Camera On)*\n\n* `!report` - Reports the current user on Omegle.\n* `!moff` - Disables all music features and disconnects the bot.\n* `!mon` - Enables all music features and connects the bot.\n* `!rtimeouts` - Removes all active timeouts from users.\n* `!display \u003cuser\u003e` - Shows a detailed profile for a user.\n* `!role \u003c@role\u003e` - Lists all members in a specific role.\n* `!move \u003c@user\u003e` - Moves a user from Streaming to Punishment VC.\n* `!commands` - Shows this list of all commands.\n\n### 👑 Owner Commands (Allowed Users Only)\n\n*(No channel or VC restrictions)*\n\n* `!mshuffle` - Cycles music mode (Shuffle -\u003e Alphabetical -\u003e Loop).\n* `!purge \u003ccount\u003e` - Purges a specified number of messages.\n* `!help` - Sends the interactive help menu with buttons.\n* `!music` - Sends the interactive music control menu.\n* `!times` - Shows top VC users by time.\n* `!timeouts` - Shows currently timed-out users.\n* `!bans` - Shows currently banned users.\n* `!hush` - Server-mutes all non-admin users in the Streaming VC.\n* `!rhush` / `!removehush` - Removes server-mutes from all users.\n* `!secret` - Server-mutes and deafens all non-admin users.\n* `!rsecret` / `!removesecret` - Removes mute/deafen from all users.\n* `!modoff` / `!modon` - Toggles automated VC moderation.\n* `!disablenotifications` / `!enablenotifications` - Toggles event notifications.\n* `!ban \u003cuser\u003e` - Bans user(s) with a reason prompt.\n* `!unban \u003cuser_id\u003e` - Unbans a user by ID.\n* `!unbanall` - Unbans every user from the server.\n* `!disable \u003cuser\u003e` - Disables a user from using commands.\n* `!enable \u003cuser\u003e` - Re-enables a disabled user.\n* `!top` - Lists the top 10 oldest server/Discord accounts.\n* `!roles` - Lists all server roles and their members.\n* `!admin` / `!owner` - Lists configured bot owners and admins.\n* `!whois` - Shows a 24-hour report of server activity.\n* `!stats` - Shows a detailed analytics report.\n* `!join` - DMs a join invite to all users with an admin role.\n* `!clearstats` - Clears all statistical data.\n* `!clearwhois` - Clears all historical event data.\n* `!vote \u003croles or users\u003e` - Starts a Smash or Pass vote.\n* `!endvote` - Stops the current Smash or Pass voting system.\n* `!shutdown` - Safely shuts down the bot.\n\n## ⚙️ Setup \u0026 Configuration\n\n### 1\\. Prerequisites\n\n  * **Microsoft Edge**: Ensure the Edge browser is installed and up-to-date.\n  * **Python 3.9+**: Install from [python.org](https://www.python.org/downloads/). Make sure to check **\"Add Python to PATH\"** during installation.\n  * **FFmpeg**: Required for music playback. Download from [ffmpeg.org](https://ffmpeg.org/download.html) and add it to your system's PATH.\n  * **Deno**: Required by the `yt-dlp` music dependency.\n      1.  Install Deno with this command `irm https://deno.land/install.ps1 | iex`\n      2.  Ensure the Deno executable is added to your system's `PATH`.\n  * **Dependencies**: Open `cmd.exe` or another terminal, then paste and run the following command:\n\n```bash\npip install discord.py python-dotenv selenium loguru keyboard mutagen yt-dlp spotipy\n````\n\n### 2\\. Create a Discord Bot\n\n1.  Navigate to the [Discord Developer Portal](https://discord.com/developers/applications) and create a new application.\n2.  Go to the **\"Bot\"** tab and enable the following **Privileged Gateway Intents**:\n      * ✅ **Message Content Intent**\n      * ✅ **Server Members Intent**\n3.  Click **\"Reset Token\"** to reveal your bot's token. **Copy this value immediately and store it securely.**\n4.  Go to the **\"OAuth2\" -\\\u003e \"URL Generator\"** tab. Select the `bot` and `applications.commands` scopes.\n5.  In the \"Bot Permissions\" section, select `Administrator`.\n6.  Copy the generated URL and use it to invite the bot to your server.\n\n### 3\\. Set up Spotify API (Optional)\n\nTo enable playing songs from Spotify links:\n\n1.  Go to the [Spotify Developer Dashboard](https://developer.spotify.com/dashboard/) and log in.\n2.  Click **\"Create app\"**.\n3.  Once created, you will see your **Client ID**. Click **\"Show client secret\"** to reveal the **Client Secret**.\n4.  **Copy both.**\n\n### 4\\. File Setup\n\n1.  Create a folder for your bot and place all the provided Python files (`bot.py`, `helper.py`, `omegle.py`, `tools.py`) inside.\n2.  Create a new file in the same folder named `.env`.\n3.  Open the `.env` file and add your credentials.\n4.  **Install Cookies**: To enable age restricted youtube music, use a browser extension (like \"Get cookies.txt LOCALLY\") to export your YouTube cookies. Rename the file to `cookies.txt` and place it in the same folder as `bot.py`.\n\n\u003c!-- end list --\u003e\n\n```\n# .env file\nBOT_TOKEN=YOUR_DISCORD_BOT_TOKEN_HERE\nSPOTIPY_CLIENT_ID=YOUR_SPOTIFY_CLIENT_ID_HERE\nSPOTIPY_CLIENT_SECRET=YOUR_SPOTIFY_CLIENT_SECRET_HERE\n```\n\n### 5\\. Configure `config.py`\n\nOpen `config.py` and replace the placeholder values with your server's settings.\n\n```python\n# --- REQUIRED SETTINGS ---\nGUILD_ID = 123456789012345678                    # Your Discord Server ID\nCOMMAND_CHANNEL_ID = 123456789012345678          # Channel for bot commands and menus\nCHAT_CHANNEL_ID = 123456789012345678             # Channel for join/leave/ban notifications\nSTREAMING_VC_ID = 123456789012345678             # Main streaming/music voice channel\nPUNISHMENT_VC_ID = 123456789012345678            # VC where users are moved for a first violation\nOMEGLE_VIDEO_URL = \"[https://umingle.com/video](https://umingle.com/video)\"   # URL for the streaming website\n# Go to edge://version/ in edge and copy \"Profile path\" without the \"/Default\" or \"/Profile X\" at the end.\nEDGE_USER_DATA_DIR = \"C:/Users/YourUser/AppData/Local/Microsoft/Edge/User Data/\"\nEDGE_DRIVER_PATH = None # Optional: \"C:/path/to/msedgedriver.exe\"\nSS_LOCATION = 'screenshots' # Local folder for screenshots\n\n# --- PERMISSIONS ---\nALLOWED_USERS = {123456789012345678, 987654321098765432} # User IDs with full bot access\nADMIN_ROLE_NAME = [\"Admin\", \"Moderator\"]                 # Roles that can use Admin Commands\nMOVE_ROLE_NAME = [\"Admin\", \"Mover\"]                      # Roles allowed to use the !move command\nMUSIC_ROLES = [\"DJ\", \"Supporter\"]                        # Roles allowed to use Music commands (Leave empty for all)\n\n# --- OPTIONAL FEATURES ---\nLOG_GC = None                           # Channel ID for bot status/error messages\nALT_VC_ID = []                          # List of additional voice channel IDs to moderate\nAUTO_STATS_CHAN = 123456789012345678    # Channel for daily stats \u0026 BAN SCREENSHOTS\nMEDIA_ONLY_CHANNEL_ID = None            # Channel where only media is allowed\nMOD_MEDIA = False                       # Enable/disable media-only channel moderation\nEMPTY_VC_PAUSE = True                   # Auto-refresh (!pause) stream when VC becomes empty\nAUTO_VC_START = False                   # Auto-skip (!start) stream when first user joins\nAUTO_RELAY = False                      # Automatically send /relay to chat\nAUTO_OMEGLE_VOL = False                 # Automatically set the Omegle volume slider\nOMEGLE_VOL = 100                        # Volume (0-100) to set if enabled\n\nSTATS_EXCLUDED_USERS = {123456789012345678} # User IDs to exclude from stats\n\n# --- TIMING \u0026 MESSAGES ---\nAUTO_STATS_HOUR_UTC = 5                 # UTC hour for daily stats\nAUTO_STATS_MINUTE_UTC = 0               # UTC minute for daily stats\nCOMMAND_COOLDOWN = 5                    # Button cooldown\nCAMERA_OFF_ALLOWED_TIME = 30            # Seconds allowed without camera\nDEAFEN_ALLOWED_TIME = 300               # Seconds allowed self-deafened before punishment\nTIMEOUT_DURATION_SECOND_VIOLATION = 60\nTIMEOUT_DURATION_THIRD_VIOLATION = 300\n```\n\n## Running the Bot\n\n1.  **Important**: Close all running instances of Microsoft Edge.\n2.  Open your terminal, navigate to the folder, and run:\n    ```\n    python bot.py\n    ```\n\n### Troubleshooting\n\n  * **Token Error**: Ensure `.env` is named correctly and contains no spaces around the token.\n  * **Edge Won't Launch**: Close all background Edge processes. Verify `EDGE_USER_DATA_DIR` path uses forward slashes `/`.\n  * **Music Fails**: Ensure **FFmpeg** and **Deno** are in your system PATH.\n  * **Spotify Links**: Check Client ID/Secret in `.env`. Note that playlists are limited to 100 tracks.\n  * **VC Errors**: Check the `LOG_GC` channel. Ensure the bot has \"Connect\" and \"Speak\" permissions.\n\n### Donate\n\n  * Author: `https://github.com/EolnMsuk`\n  * Venmo: `https://account.venmo.com/u/eolnmsuk`\n  * BTC: `bc1qm06lzkdfule3f7flf4u70xvjrp5n74lzxnnfks`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feolnmsuk%2Fskipcord-3","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feolnmsuk%2Fskipcord-3","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feolnmsuk%2Fskipcord-3/lists"}