From e8e3717b71e1deda0ab30bb09c68617047959914 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Thu, 8 Apr 2021 21:58:16 +0200 Subject: [PATCH] [instagram] add extractor for /tagged posts (#1439) --- gallery_dl/extractor/instagram.py | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/gallery_dl/extractor/instagram.py b/gallery_dl/extractor/instagram.py index 74c61973..727bfd6c 100644 --- a/gallery_dl/extractor/instagram.py +++ b/gallery_dl/extractor/instagram.py @@ -328,7 +328,7 @@ class InstagramExtractor(Extractor): def _get_edge_data(self, user, key): cursor = self.config("cursor") - if cursor: + if cursor or not key: return { "edges" : (), "page_info": { @@ -386,6 +386,7 @@ class InstagramUserExtractor(InstagramExtractor): (InstagramPostsExtractor , base + "posts/"), (InstagramReelsExtractor , base + "reels/"), (InstagramChannelExtractor , base + "channel/"), + (InstagramTaggedExtractor , base + "tagged/"), ), ("posts",)) @@ -408,6 +409,25 @@ class InstagramPostsExtractor(InstagramExtractor): return self._pagination_graphql(query_hash, variables, edge) +class InstagramTaggedExtractor(InstagramExtractor): + """Extractor for ProfilePage tagged posts""" + subcategory = "tagged" + pattern = USER_PATTERN + r"/tagged" + test = ("https://www.instagram.com/instagram/tagged/", { + "range": "1-16", + "count": ">= 16", + }) + + def posts(self): + url = "{}/{}/".format(self.root, self.item) + user = self._extract_profile_page(url) + + query_hash = "31fe64d9463cbbe58319dced405c6206" + variables = {"id": user["id"], "first": 50} + edge = self._get_edge_data(user, None) + return self._pagination_graphql(query_hash, variables, edge) + + class InstagramChannelExtractor(InstagramExtractor): """Extractor for ProfilePage channel""" subcategory = "channel"