First version
This commit is contained in:
commit
a1072dcb97
6 files changed
+348
No files matched your search
@@ -0,0 +1,25 @@
|
||||
|
||||
# YouTube Notification Service – Overview
|
||||
|
||||
You need to use an [external Website like this one](https://channelsurfer.tv/tools/youtube-rss-feed/) to get the RSS feed ID for a channel.
|
||||
## 1. Order of events
|
||||
|
||||
1. **Connect to the database:** Establish a connection to the database containing the subscribed YouTube channels.
|
||||
2. **Retrieve subscriptions:** Fetch all subscribed YouTube RSS feed URLs from the database.
|
||||
3. **Fetch RSS feeds:** Use `feedparser` to query each subscribed feed.
|
||||
4. **Check for updates:** Compare the latest feed entries against the last known entry stored in the database.
|
||||
5. **Send notifications:** If a new video is found, send its information (`title`, `body`, `link`, `timestamp`) to the `backend-api` using a POST request.
|
||||
6. **Update database:** After successfully sending the notification, update the stored latest video information to prevent duplicate notifications.
|
||||
7. **Close database connection:** Close the database connection once all subscriptions have been processed.
|
||||
|
||||
## 2. Dependencies
|
||||
|
||||
- **feedparser:** Parse YouTube RSS feeds and extract video information.
|
||||
- **requests:** Send HTTP POST requests to the `backend-api`.
|
||||
- **Database driver:** Connect to and query the database.
|
||||
|
||||
## 3. Things to improve once it works
|
||||
|
||||
- Handle unavailable RSS feeds without stopping the entire service.
|
||||
- Handle failed API requests so notifications aren't accidentally marked as processed.
|
||||
- Log errors and processing information using Python's `logging` module. Use a LOG_LEVEL to set it to either debugging or production(info)
|
||||
Reference in new issue
Block a user