fix(youtube): resume from last posted video after interrupted batch#111
Merged
Conversation
Previously check_for_new_videos() advanced and persisted last_video_id to the newest video BEFORE the daemon posted the batch. If the process was killed mid-batch (e.g. container restart), the unposted videos were silently marked as seen and never posted. Now state is advanced per-video via a new mark_posted() method that the daemon calls after each video is successfully handled, so an interrupted batch resumes from the next unposted video.
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Scanned FilesNone |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
check_for_new_videos()advanced and persistedlast_video_idto the newest video before the daemon actually posted the batch to social platforms. If the process was killed mid-batch (e.g. a container restart or power event), every not-yet-posted video was silently marked as "seen" and never posted.This is what caused the recent case where 8 new videos were detected but only the first posted after repeated restarts — the remaining videos (and a subsequent upload) were skipped with no error and no log line.
Fix
check_for_new_videos()no longer advanceslast_video_idup front.mark_posted(video_data)onYouTubeVideosPlatform, which advances and persistslast_video_idfor a single video.main.py'scheck_platforms()callsplatform.mark_posted(video_data)after each video is handled.Result: an interrupted batch resumes from the next unposted video instead of skipping the remainder. First-run initialization behavior is unchanged.
Testing