mirror of
https://github.com/instaloader/instaloader.git
synced 2026-11-01 13:05:29 -08:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
297a88f252 | ||
|
|
db2ae98928 | ||
|
|
b79a0a1e8b | ||
|
|
d3cd639789 | ||
|
|
618c23144e | ||
|
|
66165a9d5d |
Binary file not shown.
|
After Width: | Height: | Size: 2.9 KiB |
+20
-1
@@ -124,11 +124,30 @@ Supporters
|
|||||||
.. current-sponsors-start
|
.. current-sponsors-start
|
||||||
|
|
||||||
| Instaloader is proudly sponsored by
|
| Instaloader is proudly sponsored by
|
||||||
| `@rocketapi-io <https://github.com/rocketapi-io>`__
|
|
||||||
|
.. list-table::
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
* - |socialapis|
|
||||||
|
* - `SocialAPIs <https://socialapis.io/?utm_source=github&utm_medium=sponsor&utm_campaign=instaloader>`__
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
* - `@rocketapi-io <https://github.com/rocketapi-io>`__
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
See `Alex' GitHub Sponsors <https://github.com/sponsors/aandergr>`__ page for
|
See `Alex' GitHub Sponsors <https://github.com/sponsors/aandergr>`__ page for
|
||||||
how you can sponsor the development of Instaloader!
|
how you can sponsor the development of Instaloader!
|
||||||
|
|
||||||
|
.. |socialapis| image:: ./.sponsor-logos/socialapis.png
|
||||||
|
:alt: SocialAPIs
|
||||||
|
:target: https://socialapis.io/?utm_source=github&utm_medium=sponsor&utm_campaign=instaloader
|
||||||
|
:height: 96px
|
||||||
|
|
||||||
.. current-sponsors-end
|
.. current-sponsors-end
|
||||||
|
|
||||||
It is a pleasure for us to share our Instaloader to the world, and we are proud
|
It is a pleasure for us to share our Instaloader to the world, and we are proud
|
||||||
|
|||||||
Symlink
+1
@@ -0,0 +1 @@
|
|||||||
|
../.sponsor-logos
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
"""Download pictures (or videos) along with their captions and other metadata from Instagram."""
|
"""Download pictures (or videos) along with their captions and other metadata from Instagram."""
|
||||||
|
|
||||||
|
|
||||||
__version__ = '4.15.1'
|
__version__ = '4.15.2'
|
||||||
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ def filterstr_to_filterfunc(filter_str: str, item_type: type):
|
|||||||
return filterfunc
|
return filterfunc
|
||||||
|
|
||||||
|
|
||||||
def get_cookies_from_instagram(domain, browser, cookie_file='', cookie_name=''):
|
def get_cookies_from_instagram(domain: str, browser: str, cookie_file: Optional[str] = None):
|
||||||
supported_browsers = {
|
supported_browsers = {
|
||||||
"brave": browser_cookie3.brave,
|
"brave": browser_cookie3.brave,
|
||||||
"chrome": browser_cookie3.chrome,
|
"chrome": browser_cookie3.chrome,
|
||||||
@@ -114,13 +114,10 @@ def get_cookies_from_instagram(domain, browser, cookie_file='', cookie_name=''):
|
|||||||
raise LoginException(f"No cookies found for Instagram in {browser}, "
|
raise LoginException(f"No cookies found for Instagram in {browser}, "
|
||||||
f"Are you logged in successfully in {browser}?")
|
f"Are you logged in successfully in {browser}?")
|
||||||
|
|
||||||
if cookie_name:
|
return cookies
|
||||||
return cookies.get(cookie_name, {})
|
|
||||||
else:
|
|
||||||
return cookies
|
|
||||||
|
|
||||||
|
|
||||||
def import_session(browser, instaloader, cookiefile):
|
def import_session(browser: str, instaloader: Instaloader, cookiefile: Optional[str]):
|
||||||
cookie = get_cookies_from_instagram('instagram', browser, cookiefile)
|
cookie = get_cookies_from_instagram('instagram', browser, cookiefile)
|
||||||
if cookie is not None:
|
if cookie is not None:
|
||||||
instaloader.context.update_cookies(cookie)
|
instaloader.context.update_cookies(cookie)
|
||||||
|
|||||||
@@ -319,9 +319,11 @@ class Post:
|
|||||||
|
|
||||||
def _obtain_metadata(self):
|
def _obtain_metadata(self):
|
||||||
if not self._full_metadata_dict:
|
if not self._full_metadata_dict:
|
||||||
pic_json = self._context.doc_id_graphql_query(
|
response = self._context.doc_id_graphql_query(
|
||||||
"8845758582119845", {"shortcode": self.shortcode}
|
"8845758582119845", {"shortcode": self.shortcode}
|
||||||
)["data"]["xdt_shortcode_media"]
|
)
|
||||||
|
data = (response or {}).get("data")
|
||||||
|
pic_json = data.get("xdt_shortcode_media") if data else None
|
||||||
if pic_json is None:
|
if pic_json is None:
|
||||||
raise BadResponseException("Fetching Post metadata failed.")
|
raise BadResponseException("Fetching Post metadata failed.")
|
||||||
try:
|
try:
|
||||||
@@ -990,8 +992,10 @@ class Profile:
|
|||||||
"__relay_internal__pv__PolarisCannesGuardianExperienceEnabledrelayprovider": True,
|
"__relay_internal__pv__PolarisCannesGuardianExperienceEnabledrelayprovider": True,
|
||||||
"__relay_internal__pv__PolarisCASB976ProfileEnabledrelayprovider": False,
|
"__relay_internal__pv__PolarisCASB976ProfileEnabledrelayprovider": False,
|
||||||
"__relay_internal__pv__PolarisRepostsConsumptionEnabledrelayprovider": False,
|
"__relay_internal__pv__PolarisRepostsConsumptionEnabledrelayprovider": False,
|
||||||
|
"__relay_internal__pv__PolarisWebSchoolsEnabledrelayprovider": False,
|
||||||
|
"enable_integrity_filters": True,
|
||||||
}
|
}
|
||||||
data = self._context.doc_id_graphql_query('25980296051578533', variables)
|
data = self._context.doc_id_graphql_query('27937681195819736', variables)
|
||||||
if data is None:
|
if data is None:
|
||||||
raise QueryReturnedNotFoundException('GraphQL query returned None')
|
raise QueryReturnedNotFoundException('GraphQL query returned None')
|
||||||
user_data = data.get('data', {}).get('user')
|
user_data = data.get('data', {}).get('user')
|
||||||
|
|||||||
Reference in New Issue
Block a user