Bot/App Invite Link
Support and Help Discord
A feature-rich Discord bot that automatically tracks and posts TV show diary entries from Serializd to your Discord server. Get beautifully formatted embeds whenever you or your friends log new episodes!
- Multi-user support - Track multiple Serializd users simultaneously
- Real-time updates - Polls diaries at configurable intervals (default: 5 minutes)
- Smart filtering - Only posts new entries, prevents duplicates
- Initial scan - Posts last 24 hours of activity when adding a new user
- Beautiful formatting with show banners, ratings, and metadata
- Custom star ratings - Configurable emoji stars with 5-point scale
- Season & episode info - Properly formatted as "Season X · Episode Y"
- Rewatch indicators - Shows 🔄 Rewatched or 👀 First Watch
- Like/dislike status - Displays ❤️ Liked or 💔 Not Liked
- Tags support - Shows user-defined tags from diary entries
- Spoiler protection - Automatically hides reviews marked as containing spoilers
- Direct links - Click title to jump to the diary entry
/setchannel- Set channel for automatic diary posts/adduser- Add a Serializd user to track/removeuser- Stop tracking a user/listusers- View all tracked users/testuser- Test if a Serializd profile is accessible/botstatus- View bot configuration and uptime
/profile- Interactive profile viewer with pagination- Recently logged shows
- Currently watching
- Watchlist
/watching- View what a user is currently watching/watchlist- View a user's watchlist/watched- View a user's completed shows/paused- View a user's paused shows/dropped- View a user's dropped shows/sharelink- Share your Serializd & Letterboxd profiles
- Role restrictions - Limit commands to specific roles
- Channel restrictions - Restrict commands to designated channels
- Customizable permissions - Configure per-command access levels
- Custom bot name and icons via environment variables
- Configurable status rotation with custom messages
- Flexible polling interval (1-60 minutes)
- Persistent configuration - All settings saved in
config.json - No restart needed - Configuration updates apply immediately
- Python 3.8 or higher
- A Discord Bot Token (Get one here)
- Discord server with admin permissions
- Clone the repository
git clone https://github.com/yourusername/serializd-discord-bot.git
cd serializd-discord-bot- Install dependencies
pip install -r requirements.txt- Configure the bot
cp env.example .envEdit .env and add your Discord bot token:
DISCORD_TOKEN=your_bot_token_here- Run the bot
python bot.py- Invite the bot to your server using this URL (replace
YOUR_CLIENT_ID):
https://discord.com/oauth2/authorize?client_id=YOUR_CLIENT_ID&permissions=274877991936&scope=bot%20applications.commands
- Set the posting channel:
/setchannel #tv-shows
- Add users to track:
/adduser username
That's it! The bot will start posting new diary entries automatically.
Create a .env file in the root directory:
# ─── Required ─────────────────────────────────────────
DISCORD_TOKEN=your_bot_token_here
# ─── Optional - Bot Behavior ──────────────────────────
POLL_INTERVAL_MINUTES=5
BOT_NAME=Serializd Bot
BOT_ICON_URL=https://www.serializd.com/android-chrome-192x192.png
# ─── Optional - Status Rotation ───────────────────────
STATUS_ROTATION_SECONDS=30
CUSTOM_STATUS_1=Enjoying Shows 📺
CUSTOM_STATUS_2=
CUSTOM_STATUS_3=
# ─── Optional - Icons ─────────────────────────────────
AUTHOR_ICON_URL=https://cdn.discordapp.com/.../icon.png
# ─── Optional - Star Rating Emojis ────────────────────
# Get emoji IDs by typing \:emoji_name: in Discord
FULL_STAR_EMOJI_ID=1475958462457446552
HALF_STAR_EMOJI_ID=1475958876053573812
# ─── Optional - Admin Role ────────────────────────────
ADMIN_ROLE_ID=123456789012345678- Enable Developer Mode in Discord:
- Settings → Advanced → Developer Mode
- Type
\:EmojiName:in any channel - It will show as
<:EmojiName:1234567890> - Copy just the number part:
1234567890
All bot settings are stored in config.json:
- Tracked users
- Channel IDs
- Role restrictions
- Command permissions
- User sharelinks
This file is automatically created on first run.
| Command | Description | Example |
|---|---|---|
/setchannel |
Set diary posting channel | /setchannel #tv-diary |
/adduser |
Track a Serializd user | /adduser johndoe |
/removeuser |
Stop tracking a user | /removeuser johndoe |
/listusers |
Show all tracked users | /listusers |
/testuser |
Test if profile is accessible | /testuser johndoe |
/setchannelcmd |
Restrict commands to a channel | /setchannelcmd #bot-commands |
/toggleroles |
Enable/disable role restrictions | /toggleroles true |
/addrole |
Add allowed role | /addrole @TV Watchers |
/removerole |
Remove allowed role | /removerole @TV Watchers |
/viewroles |
View role configuration | /viewroles |
/botstatus |
Show bot status | /botstatus |
/setchannelsharelink |
Set sharelink channel | /setchannelsharelink #intros |
/clearsharelink |
Clear a user's sharelink | /clearsharelink @user |
/setpermission |
Set command permissions | /setpermission profile any |
| Command | Description | Example |
|---|---|---|
/profile |
Interactive profile viewer | /profile johndoe |
/watching |
Currently watching shows | /watching johndoe |
/watchlist |
User's watchlist | /watchlist johndoe |
/watched |
Completed shows | /watched johndoe |
/paused |
Paused shows | /paused johndoe |
/dropped |
Dropped shows | /dropped johndoe |
/sharelink |
Share profile links | /sharelink serializd:johndoe |
All slash commands also work with the ! prefix:
!setchannel #tv-shows
!adduser johndoe
!profile johndoe
Set up to 3 custom status messages that rotate with tracking/uptime info:
CUSTOM_STATUS_1=Enjoying Shows 📺
CUSTOM_STATUS_2=Binge-watching 🍿
CUSTOM_STATUS_3=Couch Potato Mode 🛋️The bot will cycle through:
- Tracking X users
- Uptime: Xh Xm
- Your custom messages
Upload your own star emojis to your Discord server:
- Create/find star images (full and half)
- Upload to Discord server
- Get emoji IDs:
\:YourStarEmoji: - Add to
.env:
FULL_STAR_EMOJI_ID=your_full_star_id
HALF_STAR_EMOJI_ID=your_half_star_idControl who can use specific commands:
/setpermission profile any # Anyone can use /profile
/setpermission watching admin # Only admins can use /watching
/setpermission watchlist roles # Only users with allowed roles
Let users share their Serializd and Letterboxd profiles:
- Set a sharelink channel:
/setchannelsharelink #intros - Users can submit:
/sharelink serializd:username letterboxd:username - Bot posts a formatted embed with their links
- Each user can only submit once (admins can clear with
/clearsharelink)
The /profile command provides an interactive widget:
- 3 tabs: Recently Logged, Currently Watching, Watchlist
- Pagination: Navigate through items (10 per page)
- Live data: Fetches fresh data when switching tabs
- Automatic timeout: Widget expires after 5 minutes
- Check bot has permission to post in the channel
- Verify user profile is public on Serializd
- Use
/testuser usernameto check API access - Check bot logs for errors
- Verify bot has access to the emoji server
- Check emoji IDs are correct:
\:EmojiName:in Discord - Ensure emojis are named exactly
FullStarandHalfStar
- Check bot logs for debug output
- Verify the show has season info on Serializd
- Some shows may not have season names in the API
- Use
/adduser usernameto add users - Check
config.jsonhas users in the array - Restart bot if configuration seems corrupted
📺 The Lincoln Lawyer · Season 1 · Episode 3
Logged: 17 hours ago (24 February 2026 07:07)
Rating: ⭐ ⭐ ⭐ ⭐ (4.0/5)
❤️ Liked
🔄 Rewatched
Tags: #courtroom-drama #legal
Review: Outstanding episode! The courtroom scenes were intense...
────────────────────────────
Kjerne's Serializd Bot • Yesterday at 07:07
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes
- Test thoroughly
- Commit:
git commit -m 'Add amazing feature' - Push:
git push origin feature/amazing-feature - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
This bot was built using insights and code patterns from:
-
unserializd - Go package for Serializd API by @skyth3r
- API endpoint discovery and header configurations
- Data structure documentation
- API response parsing patterns
-
automate-now - Now page automation by @skyth3r
- Serializd scraping implementation
- Show data extraction techniques
Special thanks to the Serializd community for their incredible TV tracking platform!
- Serializd - The TV show tracking platform
- Discord.py Documentation
- Discord Developer Portal
If you encounter any issues or have questions:
- Check the Troubleshooting section
- Search existing Issues
- Open a new issue with:
- Bot version
- Error message (if any)
- Steps to reproduce
- Relevant log output
If you find this bot useful, please consider giving it a star on GitHub!
Made with ❤️ for the TV watching community