From fd4f917b057a5d5f2275ba8e1b5d57ca1d4d6167 Mon Sep 17 00:00:00 2001 From: tcely Date: Thu, 27 Feb 2025 10:14:33 -0500 Subject: [PATCH 1/2] Pass days to indexer function --- tubesync/sync/models.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tubesync/sync/models.py b/tubesync/sync/models.py index de874687..16736a8e 100644 --- a/tubesync/sync/models.py +++ b/tubesync/sync/models.py @@ -508,7 +508,10 @@ class Source(models.Model): indexer = self.INDEXERS.get(self.source_type, None) if not callable(indexer): raise Exception(f'Source type f"{self.source_type}" has no indexer') - response = indexer(self.get_index_url(type=type)) + days = None + if self.download_cap_date: + days = timedelta(seconds=self.download_cap).days + response = indexer(self.get_index_url(type=type), days=days) if not isinstance(response, dict): return [] entries = response.get('entries', []) From ddc9588cbf860235e2463ae950783a02384b69e2 Mon Sep 17 00:00:00 2001 From: tcely Date: Thu, 27 Feb 2025 10:50:00 -0500 Subject: [PATCH 2/2] Set `daterange` for `yt-dlp` when indexing --- tubesync/sync/youtube.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/tubesync/sync/youtube.py b/tubesync/sync/youtube.py index 5d0cf19e..95eebb8a 100644 --- a/tubesync/sync/youtube.py +++ b/tubesync/sync/youtube.py @@ -130,12 +130,21 @@ def _subscriber_only(msg='', response=None): return False -def get_media_info(url): +def get_media_info(url, days=None): ''' Extracts information from a YouTube URL and returns it as a dict. For a channel or playlist this returns a dict of all the videos on the channel or playlist as well as associated metadata. ''' + start = None + if days is not None: + try: + days = int(str(days), 10) + except Exception as e: + days = None + start = ( + f'yesterday-{days!s}days' if days else None + ) opts = get_yt_opts() opts.update({ 'ignoreerrors': False, # explicitly set this to catch exceptions @@ -145,6 +154,7 @@ def get_media_info(url): 'logger': log, 'extract_flat': True, 'check_formats': True, + 'daterange': yt_dlp.utils.DateRange(start=start), 'extractor_args': { 'youtube': {'formats': ['missing_pot']}, 'youtubetab': {'approximate_date': ['true']},