Source Code
Streaming Buddy ๐บ
Personal streaming assistant that learns your taste, tracks your watching habits, and suggests what to watch next.
Features
- Search & Info: Find movies/TV shows with TMDB data
- Watch Tracking: Track what you're currently watching with progress
- Learning System: Learns your preferences from likes/dislikes/ratings
- Smart Recommendations: Personalized suggestions based on your taste
- Mood-Based Search: Find content by mood (exciting, relaxing, scary, etc.)
- Availability Check: Shows which of your services has the content
- Match Explanation: Explains why a title matches your preferences
Commands
| Command | Action |
|---|---|
/stream |
Show status with all commands |
/stream search <title> |
Search for movies/TV shows |
/stream info <id> [tv|movie] |
Detailed info + availability |
/stream watch <id> [tv|movie] |
Start tracking a title |
/stream progress S01E05 |
Update progress on current show |
/stream done [1-5] |
Mark as finished + rate (auto-learns) |
/stream like [id] |
Mark as liked โ learns preferences |
/stream dislike [id] |
Mark as disliked โ learns preferences |
/stream suggest [service] [tv|movie] |
Personalized recommendations |
/stream mood <mood> |
Search by mood |
/stream surprise |
Random recommendation |
/stream why <id> |
Explain why this matches you |
/stream watchlist |
Show watchlist |
/stream watchlist add <id> |
Add to watchlist |
/stream history |
View watch history |
/stream profile |
Show your taste profile |
/stream services |
Manage streaming services |
/stream services add <name> |
Add a service |
/stream services remove <name> |
Remove a service |
Mood Options
| Mood | Genres |
|---|---|
exciting |
Action, Thriller, Sci-Fi, Adventure |
relaxing |
Comedy, Animation, Family, Documentary |
thoughtful |
Drama, Mystery, History |
scary |
Horror, Thriller |
romantic |
Romance, Drama |
funny |
Comedy, Animation |
Supported Services
netflix,amazon-prime,disney-plus,apple-tv-plusyoutube-premium,wow,paramount-plus,crunchyrolljoyn,rtl,magenta,mubi
Learning System
The skill learns your preferences from:
Ratings: When you finish with
/stream done [1-5]:- Rating 4-5: Adds genres/themes/actors to "liked"
- Rating 1-2: Adds genres to "avoided"
Explicit Feedback:
/stream likeand/stream dislike:- Extracts genres, themes, actors, directors
- Updates preference weights
Preference Profile includes:
- Genre preferences (weighted scores)
- Liked/disliked themes
- Favorite actors & directors
- Custom mood mappings
Handler Usage
# Core commands
handler.sh status $WORKSPACE
handler.sh search "severance" $WORKSPACE
handler.sh info 95396 tv $WORKSPACE
handler.sh watch 95396 tv $WORKSPACE
handler.sh progress S01E05 $WORKSPACE
handler.sh done 5 "Great show!" $WORKSPACE
# Learning commands
handler.sh like $WORKSPACE # Like current watching
handler.sh like 12345 movie $WORKSPACE # Like specific title
handler.sh dislike $WORKSPACE
handler.sh why 95396 tv $WORKSPACE
handler.sh profile $WORKSPACE
# Recommendation commands
handler.sh suggest $WORKSPACE # All services, all types
handler.sh suggest prime movie $WORKSPACE # Prime movies only
handler.sh mood exciting $WORKSPACE
handler.sh mood relaxing tv $WORKSPACE
handler.sh surprise $WORKSPACE
# List commands
handler.sh watchlist list $WORKSPACE
handler.sh watchlist add 12345 tv $WORKSPACE
handler.sh history $WORKSPACE
# Service management
handler.sh services list $WORKSPACE
handler.sh services add netflix $WORKSPACE
handler.sh services remove netflix $WORKSPACE
Data Files
All data stored in $WORKSPACE/memory/streaming-buddy/:
| File | Purpose |
|---|---|
config.json |
TMDB API key, region, language |
profile.json |
User profile metadata |
services.json |
Active streaming services |
preferences.json |
Learned taste preferences |
watching.json |
Currently watching |
watchlist.json |
Want to watch list |
history.json |
Watched + ratings |
cache/*.json |
API response cache (24h) |
Setup
- Get TMDB API key: https://www.themoviedb.org/settings/api
- Store in
memory/streaming-buddy/config.json:{ "tmdbApiKey": "your_api_key", "region": "DE", "language": "de-DE" } - Run
/stream setupto configure services
Conversation Examples
Mood-based search:
User: I want something exciting tonight
Bot: ๐ฌ Exciting picks for you:
1. Reacher S3 (Prime) โญ8.5
2. Jack Ryan (Prime) โญ8.1
...
Learning from feedback:
User: /stream done 5
Bot: โ
Severance marked as done (โญ5)
๐ Learned: +Drama, +Mystery, +Sci-Fi
Actors: Adam Scott, Britt Lower saved to favorites
Explaining recommendations:
User: /stream why 95396
Bot: ๐ฏ Why Severance matches you:
โ Genre "Drama" (you like this, +2)
โ Genre "Mystery" (you like this, +2)
โ Theme "office" in your preferences
โ With Adam Scott (your favorite)
Similar to: Fallout โญ5
Language Support
- Language detected from
config.json(language: "de-DE"or"en") - All output adapts to configured language
- Commands work in any language
Requirements
jq(JSON processor)curl(HTTP client)bash4.0+- TMDB API key (free)
References
- services.md โ Full list of streaming services
- tmdb-api.md โ TMDB API usage
- justwatch.md โ Availability data integration