-
Notifications
You must be signed in to change notification settings - Fork 882
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Try Instagrapi SaaS with a free trial https://hikerapi.com/p/5GBWznd3
Describe the bug
When I try to use Client.collection_medias, I get the following errors:
ValidationError: 2 validation errors for Media
image_versions2.candidates.0.scans_profile
Input should be a valid string [type=string_type, input_value=None, input_type=NoneType]
For further information visit https://errors.pydantic.dev/2.11/v/string_type
ValidationError: 1 validation error for Media
clips_metadata.original_sound_info
Input should be a valid dictionary or instance of ClipsOriginalSoundInfo [type=model_type, input_value=None, input_type=NoneType]
For further information visit https://errors.pydantic.dev/2.11/v/model_type
ValidationError: 1 validation error for Media
clips_metadata.reusable_text_info
Input should be a valid dictionary [type=dict_type, input_value=[{'alignment': 'center', ..._color': '#000000FF'}]}],
input_type=list]
For further information visit https://errors.pydantic.dev/2.11/v/dict_type
To Reproduce
from instagrapi import Client
cl = Client()
cl.login(IG_USERNAME, IG_PASSWORD)
data = cl.liked_medias(amount=30)The error isn't always reproduceable because only some reels/media items aren't compatible with the existing pydantic types.
Traceback
Show your full traceback so that it is clear where exactly the error occurred.
endernoke:~/repos/instagram-cli/instagram-py$ uv run instagram stats
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Traceback (most recent call last) โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ ... โ
โ /home/endernoke/repos/instagram-cli/instagram-py/instagram/api/analytics.py:302 in get_brainrot_history โ
โ โ
โ 299 def get_brainrot_history(last_n_days): โ
โ 300 โ """Fetches liked Reels data and returns a list of counts per day.""" โ
โ 301 โ cl = ClientWrapper().login_by_session() โ
โ โฑ 302 โ data = cl.liked_medias(amount=30) โ
โ 303 โ โ
โ 304 โ if not data: โ
โ 305 โ โ return [0] * last_n_days โ
โ โ
โ โญโโโโโโโโโโโโโโโโโโโโโโโโโโ locals โโโโโโโโโโโโโโโโโโโโโโโโโโโฎ โ
โ โ cl = <instagrapi.Client object at 0x77905e96bcb0> โ โ
โ โ last_n_days = 14 โ โ
โ โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ โ
โ โ
โ /home/endernoke/repos/instagram-cli/instagram-py/.venv/lib/python3.13/site-packages/instagrapi/mixins/collection.py:94 in โ
โ liked_medias โ
โ โ
โ 91 โ โ List[Media] โ
โ 92 โ โ โ A list of objects of Media โ
โ 93 โ โ """ โ
โ โฑ 94 โ โ return self.collection_medias("liked", amount, last_media_pk) โ
โ 95 โ โ
โ 96 โ def collection_medias_v1_chunk( โ
โ 97 โ โ self, collection_pk: str, max_id: str = "" โ
โ โ
โ โญโโโโโโโโโโโโโโโโโโโโโโโโโโโ locals โโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ โ
โ โ amount = 30 โ โ
โ โ last_media_pk = 0 โ โ
โ โ self = <instagrapi.Client object at 0x77905e96bcb0> โ โ
โ โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ โ
โ โ
โ /home/endernoke/repos/instagram-cli/instagram-py/.venv/lib/python3.13/site-packages/instagrapi/mixins/collection.py:188 in โ
โ collection_medias โ
โ โ
โ 185 โ โ List[Media] โ
โ 186 โ โ โ A list of objects of Media โ
โ 187 โ โ """ โ
โ โฑ 188 โ โ return self.collection_medias_v1( โ
โ 189 โ โ โ collection_pk, amount=amount, last_media_pk=last_media_pk โ
โ 190 โ โ ) โ
โ 191 โ
โ โ
โ โญโโโโโโโโโโโโโโโโโโโโโโโโโโโ locals โโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ โ
โ โ amount = 30 โ โ
โ โ collection_pk = 'liked' โ โ
โ โ last_media_pk = 0 โ โ
โ โ self = <instagrapi.Client object at 0x77905e96bcb0> โ โ
โ โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ โ
โ โ
โ /home/endernoke/repos/instagram-cli/instagram-py/.venv/lib/python3.13/site-packages/instagrapi/mixins/collection.py:154 in โ
โ collection_medias_v1 โ
โ โ
โ 151 โ โ amount = int(amount) โ
โ 152 โ โ found_last_media_pk = False โ
โ 153 โ โ while True: โ
โ โฑ 154 โ โ โ items, next_max_id = self.collection_medias_v1_chunk( โ
โ 155 โ โ โ โ collection_pk, max_id=next_max_id โ
โ 156 โ โ โ ) โ
โ 157 โ โ โ for item in items: โ
โ โ
โ โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ locals โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ โ
โ โ amount = 30 โ โ
โ โ collection_pk = 'liked' โ โ
โ โ found_last_media_pk = False โ โ
โ โ last_media_pk = 0 โ โ
โ โ next_max_id = '' โ โ
โ โ self = <instagrapi.Client object at 0x77905e96bcb0> โ โ
โ โ total_items = [] โ โ
โ โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ โ
โ โ
โ /home/endernoke/repos/instagram-cli/instagram-py/.venv/lib/python3.13/site-packages/instagrapi/mixins/collection.py:125 in โ
โ collection_medias_v1_chunk โ
โ โ
โ 122 โ โ if max_id: โ
โ 123 โ โ โ params["max_id"] = max_id โ
โ 124 โ โ result = self.private_request(private_request_endpoint, params=params) โ
โ โฑ 125 โ โ items = [extract_media_v1(m.get("media", m)) for m in result["items"]] โ
โ 126 โ โ return items, result.get("next_max_id", "") โ
โ 127 โ โ
โ 128 โ def collection_medias_v1( โ
โ โ
โ โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ locals โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ โ
โ โ collection_pk = 'liked' โ โ
โ โ max_id = '' โ โ
โ โ params = {'include_igtv_preview': 'false'} โ โ
โ โ private_request_endpoint = 'feed/liked/' โ โ
โ โ result = { โ โ
โ โ โ 'num_results': 21, โ โ
โ โ โ 'more_available': True, โ โ
โ โ โ 'items': [ โ โ
โ โ โ โ { โ โ
โ โ โ โ โ 'fbid': 18548502376051104, โ โ
โ โ โ โ โ 'deleted_reason': 0, โ โ
โ โ โ โ โ 'client_cache_key': 'Mzc5ODQyNTQ5OTYyNjk3MTY1Mw==.3', โ โ
โ โ โ โ โ 'collaborator_edit_eligibility': False, โ โ
โ โ โ โ โ 'integrity_review_decision': 'pending', โ โ
โ โ โ โ โ 'is_reshare_of_text_post_app_media_in_ig': False, โ โ
โ โ โ โ โ 'is_visual_reply_commenter_notice_enabled': True, โ โ
โ โ โ โ โ 'share_count_disabled': False, โ โ
โ โ โ โ โ 'translated_langs_for_autodub': [], โ โ
โ โ โ โ โ 'pk': 3798425499626971653, โ โ
โ โ โ โ โ ... +113 โ โ
โ โ โ โ }, โ โ
โ โ โ โ { โ โ
โ โ โ โ โ 'fbid': 17991373982861546, โ โ
โ โ โ โ โ 'deleted_reason': 0, โ โ
โ โ โ โ โ 'client_cache_key': 'Mzc5OTc4OTgyNTgwMTQ2MjQwNw==.3', โ โ
โ โ โ โ โ 'collaborator_edit_eligibility': False, โ โ
โ โ โ โ โ 'integrity_review_decision': 'pending', โ โ
โ โ โ โ โ 'is_reshare_of_text_post_app_media_in_ig': False, โ โ
โ โ โ โ โ 'is_visual_reply_commenter_notice_enabled': True, โ โ
โ โ โ โ โ 'share_count_disabled': False, โ โ
โ โ โ โ โ 'translated_langs_for_autodub': [], โ โ
โ โ โ โ โ 'pk': 3799789825801462407, โ โ
โ โ โ โ โ ... +112 โ โ
โ โ โ โ }, โ โ
โ โ โ โ { โ โ
โ โ โ โ โ 'fbid': 17875674036464991, โ โ
โ โ โ โ โ 'deleted_reason': 0, โ โ
โ โ โ โ โ 'client_cache_key': 'Mzc5OTc5Mjg3NDQ0MDA1NTU4Mw==.3', โ โ
โ โ โ โ โ 'collaborator_edit_eligibility': False, โ โ
โ โ โ โ โ 'integrity_review_decision': 'pending', โ โ
โ โ โ โ โ 'is_reshare_of_text_post_app_media_in_ig': False, โ โ
โ โ โ โ โ 'is_visual_reply_commenter_notice_enabled': True, โ โ
โ โ โ โ โ 'share_count_disabled': False, โ โ
โ โ โ โ โ 'pk': 3799792874440055583, โ โ
โ โ โ โ โ 'id': '3799792874440055583_45205760721', โ โ
โ โ โ โ โ ... +98 โ โ
โ โ โ โ }, โ โ
โ โ โ โ { โ โ
โ โ โ โ โ 'fbid': 18037392116721235, โ โ
โ โ โ โ โ 'deleted_reason': 0, โ โ
โ โ โ โ โ 'client_cache_key': 'Mzc5OTcwOTE0NDcwNjAyMDk2OQ==.3', โ โ
โ โ โ โ โ 'collaborator_edit_eligibility': False, โ โ
โ โ โ โ โ 'integrity_review_decision': 'pending', โ โ
โ โ โ โ โ 'is_reshare_of_text_post_app_media_in_ig': False, โ โ
โ โ โ โ โ 'is_visual_reply_commenter_notice_enabled': True, โ โ
โ โ โ โ โ 'share_count_disabled': False, โ โ
โ โ โ โ โ 'pk': 3799709144706020969, โ โ
โ โ โ โ โ 'id': '3799709144706020969_18034797611', โ โ
โ โ โ โ โ ... +98 โ โ
โ โ โ โ }, โ โ
โ โ โ โ { โ โ
โ โ โ โ โ 'fbid': 18065850050531252, โ โ
โ โ โ โ โ 'deleted_reason': 0, โ โ
โ โ โ โ โ 'client_cache_key': 'Mzc5OTgzODcyNjk5MDQ1NDU0NQ==.3', โ โ
โ โ โ โ โ 'collaborator_edit_eligibility': False, โ โ
โ โ โ โ โ 'integrity_review_decision': 'pending', โ โ
โ โ โ โ โ 'is_reshare_of_text_post_app_media_in_ig': False, โ โ
โ โ โ โ โ 'is_visual_reply_commenter_notice_enabled': True, โ โ
โ โ โ โ โ 'share_count_disabled': False, โ โ
โ โ โ โ โ 'pk': 3799838726990454545, โ โ
โ โ โ โ โ 'id': '3799838726990454545_9055485213', โ โ
โ โ โ โ โ ... +100 โ โ
โ โ โ โ }, โ โ
โ โ โ โ { โ โ
โ โ โ โ โ 'fbid': 18148515841442745, โ โ
โ โ โ โ โ 'deleted_reason': 0, โ โ
โ โ โ โ โ 'client_cache_key': 'Mzc5OTcwMTMxNjY2Njc4MDg3Mg==.3', โ โ
โ โ โ โ โ 'collaborator_edit_eligibility': False, โ โ
โ โ โ โ โ 'integrity_review_decision': 'pending', โ โ
โ โ โ โ โ 'is_reshare_of_text_post_app_media_in_ig': False, โ โ
โ โ โ โ โ 'is_visual_reply_commenter_notice_enabled': True, โ โ
โ โ โ โ โ 'share_count_disabled': False, โ โ
โ โ โ โ โ 'pk': 3799701316666780872, โ โ
โ โ โ โ โ 'id': '3799701316666780872_21918987066', โ โ
โ โ โ โ โ ... +99 โ โ
โ โ โ โ }, โ โ
โ โ โ โ { โ โ
โ โ โ โ โ 'fbid': 17876940507371252, โ โ
โ โ โ โ โ 'deleted_reason': 0, โ โ
โ โ โ โ โ 'client_cache_key': 'Mzc5OTAyNTE4MTUwNzc4MjYyNQ==.3', โ โ
โ โ โ โ โ 'collaborator_edit_eligibility': False, โ โ
โ โ โ โ โ 'integrity_review_decision': 'pending', โ โ
โ โ โ โ โ 'is_reshare_of_text_post_app_media_in_ig': False, โ โ
โ โ โ โ โ 'is_visual_reply_commenter_notice_enabled': True, โ โ
โ โ โ โ โ 'share_count_disabled': False, โ โ
โ โ โ โ โ 'translated_langs_for_autodub': [], โ โ
โ โ โ โ โ 'pk': 3799025181507782625, โ โ
โ โ โ โ โ ... +112 โ โ
โ โ โ โ }, โ โ
โ โ โ โ { โ โ
โ โ โ โ โ 'fbid': 18116115898585616, โ โ
โ โ โ โ โ 'deleted_reason': 0, โ โ
โ โ โ โ โ 'client_cache_key': 'Mzc5OTE1MDM3MTcxMDE1NzIzMg==.3', โ โ
โ โ โ โ โ 'collaborator_edit_eligibility': False, โ โ
โ โ โ โ โ 'integrity_review_decision': 'pending', โ โ
โ โ โ โ โ 'is_reshare_of_text_post_app_media_in_ig': False, โ โ
โ โ โ โ โ 'is_visual_reply_commenter_notice_enabled': True, โ โ
โ โ โ โ โ 'share_count_disabled': False, โ โ
โ โ โ โ โ 'translated_langs_for_autodub': [], โ โ
โ โ โ โ โ 'pk': 3799150371710157232, โ โ
โ โ โ โ โ ... +114 โ โ
โ โ โ โ }, โ โ
โ โ โ โ { โ โ
โ โ โ โ โ 'fbid': 17891062002394997, โ โ
โ โ โ โ โ 'deleted_reason': 0, โ โ
โ โ โ โ โ 'client_cache_key': 'Mzc5OTExNTE2NDcxMzk5OTAzMw==.3', โ โ
โ โ โ โ โ 'collaborator_edit_eligibility': False, โ โ
โ โ โ โ โ 'integrity_review_decision': 'pending', โ โ
โ โ โ โ โ 'is_reshare_of_text_post_app_media_in_ig': False, โ โ
โ โ โ โ โ 'is_visual_reply_commenter_notice_enabled': True, โ โ
โ โ โ โ โ 'share_count_disabled': False, โ โ
โ โ โ โ โ 'translated_langs_for_autodub': [], โ โ
โ โ โ โ โ 'pk': 3799115164713999033, โ โ
โ โ โ โ โ ... +111 โ โ
โ โ โ โ }, โ โ
โ โ โ โ { โ โ
โ โ โ โ โ 'fbid': 18323936290222226, โ โ
โ โ โ โ โ 'deleted_reason': 0, โ โ
โ โ โ โ โ 'client_cache_key': 'Mzc5OTcxNTcyMTIzMjEwMzI5Ng==.3', โ โ
โ โ โ โ โ 'collaborator_edit_eligibility': False, โ โ
โ โ โ โ โ 'integrity_review_decision': 'pending', โ โ
โ โ โ โ โ 'is_awaiting_distribution': False, โ โ
โ โ โ โ โ 'is_reshare_of_text_post_app_media_in_ig': False, โ โ
โ โ โ โ โ 'is_visual_reply_commenter_notice_enabled': True, โ โ
โ โ โ โ โ 'share_count_disabled': False, โ โ
โ โ โ โ โ 'translated_langs_for_autodub': [], โ โ
โ โ โ โ โ ... +116 โ โ
โ โ โ โ }, โ โ
โ โ โ โ ... +11 โ โ
โ โ โ ], โ โ
โ โ โ 'auto_load_more_enabled': True, โ โ
โ โ โ 'next_max_id': 3797243186893145168, โ โ
โ โ โ 'status': 'ok' โ โ
โ โ } โ โ
โ โ self = <instagrapi.Client object at 0x77905e96bcb0> โ โ
โ โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ โ
โ โ
โ /home/endernoke/repos/instagram-cli/instagram-py/.venv/lib/python3.13/site-packages/instagrapi/extractors.py:77 in โ
โ extract_media_v1 โ
โ โ
โ 74 โ media["sponsor_tags"] = [tag["sponsor"] for tag in media.get("sponsor_tags") or []] โ
โ 75 โ media["play_count"] = media.get("play_count", 0) โ
โ 76 โ media["coauthor_producers"] = media.get("coauthor_producers", []) โ
โ โฑ 77 โ return Media( โ
โ 78 โ โ caption_text=(media.get("caption") or {}).get("text", ""), โ
โ 79 โ โ resources=[ โ
โ 80 โ โ โ extract_resource_v1(edge) for edge in media.get("carousel_media", []) โ
โ โ
โ โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ locals โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ โ
โ โ data = { โ โ
โ โ โ 'fbid': 18323936290222226, โ โ
โ โ โ 'deleted_reason': 0, โ โ
โ โ โ 'client_cache_key': 'Mzc5OTcxNTcyMTIzMjEwMzI5Ng==.3', โ โ
โ โ โ 'collaborator_edit_eligibility': False, โ โ
โ โ โ 'integrity_review_decision': 'pending', โ โ
โ โ โ 'is_awaiting_distribution': False, โ โ
โ โ โ 'is_reshare_of_text_post_app_media_in_ig': False, โ โ
โ โ โ 'is_visual_reply_commenter_notice_enabled': True, โ โ
โ โ โ 'share_count_disabled': False, โ โ
โ โ โ 'translated_langs_for_autodub': [], โ โ
โ โ โ ... +116 โ โ
โ โ } โ โ
โ โ location = None โ โ
โ โ media = { โ โ
โ โ โ 'fbid': 18323936290222226, โ โ
โ โ โ 'deleted_reason': 0, โ โ
โ โ โ 'client_cache_key': 'Mzc5OTcxNTcyMTIzMjEwMzI5Ng==.3', โ โ
โ โ โ 'collaborator_edit_eligibility': False, โ โ
โ โ โ 'integrity_review_decision': 'pending', โ โ
โ โ โ 'is_awaiting_distribution': False, โ โ
โ โ โ 'is_reshare_of_text_post_app_media_in_ig': False, โ โ
โ โ โ 'is_visual_reply_commenter_notice_enabled': True, โ โ
โ โ โ 'share_count_disabled': False, โ โ
โ โ โ 'translated_langs_for_autodub': [], โ โ
โ โ โ ... +121 โ โ
โ โ } โ โ
โ โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ โ
โ โ
โ /home/endernoke/repos/instagram-cli/instagram-py/.venv/lib/python3.13/site-packages/pydantic/main.py:253 in __init__ โ
โ โ
โ 250 โ โ """ โ
โ 251 โ โ # `__tracebackhide__` tells pytest and some other tools to omit this function fr โ
โ 252 โ โ __tracebackhide__ = True โ
โ โฑ 253 โ โ validated_self = self.__pydantic_validator__.validate_python(data, self_instance โ
โ 254 โ โ if self is not validated_self: โ
โ 255 โ โ โ warnings.warn( โ
โ 256 โ โ โ โ 'A custom validator is returning a value other than `self`.\n' โ
โ โ
โ โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ locals โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ โ
โ โ data = { โ โ
โ โ โ 'caption_text': 'Real? ๐ฅน', โ โ
โ โ โ 'resources': [], โ โ
โ โ โ 'fbid': 18323936290222226, โ โ
โ โ โ 'deleted_reason': 0, โ โ
โ โ โ 'client_cache_key': 'Mzc5OTcxNTcyMTIzMjEwMzI5Ng==.3', โ โ
โ โ โ 'collaborator_edit_eligibility': False, โ โ
โ โ โ 'integrity_review_decision': 'pending', โ โ
โ โ โ 'is_awaiting_distribution': False, โ โ
โ โ โ 'is_reshare_of_text_post_app_media_in_ig': False, โ โ
โ โ โ 'is_visual_reply_commenter_notice_enabled': True, โ โ
โ โ โ ... +123 โ โ
โ โ } โ โ
โ โ self = Media() โ โ
โ โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
ValidationError: 1 validation error for Media
clips_metadata.reusable_text_info
Input should be a valid dictionary [type=dict_type, input_value=[{'alignment': 'center', ..._color': '#000000FF'}]}],
input_type=list]
For further information visit https://errors.pydantic.dev/2.11/v/dict_type
Expected behavior
The media data should be parsed successfully and no error should occur.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
- OS: [e.g. Ubuntu 21.04]
- Python version: 3.13.7
- instagrapi version: 2.2.1
- moveipy version if used
- imagemagick version if used
Additional context
Add any other context about the problem here.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working