André Koch-Kramer
f4ecfea64c
Add Android to docs installation page
2020-09-28 21:14:38 +02:00
André Koch-Kramer
4ad4584b0d
Release of Version 4.5.3
2020-09-03 20:23:57 +02:00
André Koch-Kramer
819426efdb
First Alpha Release for Version 4.3
2020-02-17 18:53:33 +01:00
André Koch-Kramer
dc289024c8
GitHub Actions workflow for Windows EXE
2020-02-17 18:31:36 +01:00
André Koch-Kramer
302145f54f
Print profile suggestions when profile not found
...
Relates to #496 .
2020-01-27 13:06:42 +01:00
André Koch-Kramer
8764947d10
Raise QueryReturnedNotFoundException if expected structure is missing
...
- QueryReturnedNotFoundException now inherits ConnectionException
--> Retry on 404 errors + missing "window._sharedData"
Relates to #146 and #496 .
2020-01-27 13:06:42 +01:00
André Koch-Kramer
d3403bc686
Implementation of TopSearchResults class
...
To be able to search Instagram for profiles, hashtags and locations.
2020-01-27 13:06:42 +01:00
André Koch-Kramer
d8ba30b91b
Speed up accessing property comments of Post
...
This has been asked for in #436 .
2020-01-13 19:56:50 +01:00
André Koch-Kramer
ec0e017b10
Release of version 4.2.10
2019-10-28 12:48:27 +01:00
André Koch-Kramer
b542936c09
Release of version 4.2.9
2019-08-18 18:28:35 +02:00
André Koch-Kramer
0345da71ec
Release of version 4.2.7
2019-05-17 21:44:11 +02:00
André Koch-Kramer
749ff60639
Do not require rhx_gix in metadata
...
Closes #297 .
2019-05-17 21:38:39 +02:00
André Koch-Kramer
93882d93e0
Release of version 4.2.5
2019-05-07 18:04:19 +02:00
André Koch-Kramer
406f33896a
First Release Candidate for Version 4.2.5
2019-05-07 17:08:32 +02:00
André Koch-Kramer
b9be1eaaf4
Automation of arch package deploy to AUR
2019-05-07 16:40:43 +02:00
André Koch-Kramer
4f9d64a284
Replace non filename compatible chars in fields
...
Values that got inserted in dirname and filename pattern get cleared
from characters that will not work in filenames.
This is also helpful for #262 .
2019-05-06 17:42:59 +02:00
André Koch-Kramer
0c9a667da7
Replace slash and backslash with similar unicode
2019-05-06 17:41:20 +02:00
André Koch-Kramer
adb9f3a346
Release of version 4.2.4
2019-04-01 21:46:09 +02:00
André Koch-Kramer
2aa26ea140
Disable pylint check (no-else-raise)
...
Freeze pylint version to 2.3.1.
2019-03-31 16:15:51 +02:00
André Koch-Kramer
0fd06fe6bc
Remove needlessly complicated code
2019-03-31 15:55:25 +02:00
André Koch-Kramer
15d9cd8949
Adjust structure to handle new threaded comments
...
This is needed because of a structure change by Instagram.
Fixes #272 .
2019-03-31 11:29:07 +02:00
André Koch-Kramer
3f4c12b54b
Release of version 4.2.2
2019-02-10 21:13:29 +01:00
André Koch-Kramer
a0b7804fd2
Properly handle redirected posts
...
Resolves #225 .
2019-02-10 18:24:33 +01:00
André Koch-Kramer
9e04ef3436
New Profile.from_id() that works without posts
...
The old method needed the target profile to have at least one post.
The new method works anonymously even for private profiles.
Closes #249 .
2019-02-10 17:46:18 +01:00
André Koch-Kramer
4ee867c61b
Implement two-factor authentication
...
Closes #200 .
2018-12-21 21:58:12 +01:00
André Koch-Kramer
6212d22e26
Merge branch 'master' of https://github.com/sushilicious/instaloader into v4.2-dev
2018-12-13 15:53:06 +01:00
André Koch-Kramer
aa859b9f54
Ignore pylint's cyclic-import and unnecessary-pass
2018-12-13 15:29:46 +01:00
André Koch-Kramer
584c69d93c
Update docs and docstrings concerning highlights
2018-08-24 00:23:19 +02:00
André Koch-Kramer
cbdd85ef07
Highlights downloadable through CLI
...
By using --highlights all available highlight stories of target profiles
will get downloaded.
Closes #162 .
2018-08-23 23:17:48 +02:00
André Koch-Kramer
2e517e972f
Extend _PostPathFormatter to replace more chars
...
On Windows, all forbidden characters now get replaced with similar
looking unicode chars.
2018-08-23 22:19:08 +02:00
André Koch-Kramer
54572fb1fc
Make the Highlight stuff accept Profile objects
...
download_highlights(), get_highlights() and the Highlight class now
accept and use the owner's Profile rather than creating it themselves.
2018-08-23 22:19:08 +02:00
André Koch-Kramer
158c1433bb
Revert accidental change of comment.id to comment.unique_id
2018-08-23 22:19:08 +02:00
André Koch-Kramer
91d5d5f867
Add class and functions for downloading highlights
...
Requested in #162 .
2018-08-23 22:19:08 +02:00
André Koch-Kramer
8303f1d1c5
Release of version 4.0.8
2018-08-07 20:07:41 +02:00
André Koch-Kramer
77ca78e977
Fix logging out when download profile_pic fails
...
Add try-finally-block to InstaloaderContext.anonymous_copy().
Fixes #159 .
2018-08-07 19:16:08 +02:00
André Koch-Kramer
92653dcdb9
Release of version 4.0.6
2018-08-02 16:55:59 +02:00
André Koch-Kramer
1b5c12c8fa
Add unittest for Profile.get_tagged_posts()
2018-08-02 16:48:06 +02:00
André Koch-Kramer
50a5330fec
Change download of stories when not using :stories
...
If using --stories or --stories-only the stories got donwloaded along
with the profiles one by one. Now, the stories get downloaded in a
similar aproach like when using the :stories target, i.e.
download_stories() gets only called once.
Profile.has_highlight_reels is broken and now always returns true.
This fixes #153 .
2018-08-02 16:20:27 +02:00
André Koch-Kramer
1739844758
Fix login by allowing more http headers
...
Because Instagram is bombarding over hundret of headers on login it is
necessary to increase http.client._MAXHEADERS.
Fixes #152 .
2018-07-30 17:50:22 +02:00
André Koch-Kramer
0ebb223214
Added BTC address to donations section
...
Motivated by #130 .
2018-07-23 23:36:46 +02:00
André Koch-Kramer
a276a0dc59
Release of version 4.0.4
2018-06-07 15:46:47 +02:00
André Koch-Kramer
cc34b8340f
Fix detection of sidecars and videos
...
This was noticeable when downloading hashtags.
Fixes #133
2018-06-07 15:32:23 +02:00
André Koch-Kramer
b9c7713d6a
Release of version 4.0.2
2018-05-14 12:47:20 +02:00
André Koch-Kramer
3211d63ec1
Replace deleted field has_highlight_reel
...
Since the property has_highlight_reel is no longer available throught
the previously used graphql query, this information needs to be obtained
in another way. Therefore the properties has_highlight_reels,
has_public_story and has_viewable_story were added to the Profile class.
Since has_public_story can be obtained throught graphql queries without
being rate limited when invoked anonymously, the ability to use an
anonymous copy of the context was added to to the InstaloaderContext class.
Fixes #116
2018-05-13 19:43:49 +02:00
André Koch-Kramer
e1228501d2
Set graphql_count_per_slidingwindow to 20
...
Instagram tightened their rate limits again.
Implemented hidden switch --graphql-rate-limit for easier adjustment of
graphql_count_per_slidingwindow.
Fixes #118
2018-05-13 19:09:40 +02:00
André Koch-Kramer
e25eb2a948
Limit GraphQl queries to 20 per 11 minutes
...
cherry-picked from commit d90c05e0a4
- Set GRAPHQL_PAGE_LENGTH to 50 what appears to be the new working maximum.
- Limit GQL queries to 20 per 666 seconds.
- Remove logic for tracking queries per query identifier as Instagram
only allows 20 overall GQL queries per sliding window.
Related to #101
2018-04-26 17:13:59 +02:00
André Koch-Kramer
440c59ecb9
Release of version 3.3.10
2018-04-20 18:51:55 +02:00
André Koch-Kramer
c9198d232f
Add 'disable=protected-access' to satisfy pylint
2018-04-20 18:47:36 +02:00
André Koch-Kramer
e689dadf00
Output warning when fetching special data
...
When fetching comments, likes, followees or followers, output a warning
that the used queries are rate limited.
2018-04-20 15:34:43 +02:00
André Koch-Kramer
d90c05e0a4
Limit GraphQl queries to 20 per 11 minutes
...
- Set GRAPHQL_PAGE_LENGTH to 50 what appears to be the new working maximum.
- Limit GQL queries to 20 per 666 seconds.
- Remove logic for tracking queries per query identifier as Instagram
only allows 20 overall GQL queries per sliding window.
Related to #101
2018-04-20 12:59:41 +02:00
André Koch-Kramer
bd9e9d4a06
Fix bug concerning Story class
2018-04-12 16:57:46 +02:00
André Koch-Kramer
ced65ea401
Release of version 3.3.6
2018-04-11 14:32:42 +02:00
André Koch-Kramer
73ec884ea4
Fix anonymous GraphQL queries
...
Closes #94 .
2018-04-11 14:19:24 +02:00
André Koch-Kramer
5b9590a768
Story and StoryItem classes to represent stories
2018-04-10 20:29:20 +02:00
André Koch-Kramer
dd1cbf0a1d
Fix instaloadercontext.get_and_write_raw()
2018-04-10 09:51:35 +02:00
André Koch-Kramer
edd1fbe49c
Release of version 3.3.4
2018-03-29 20:36:53 +02:00
André Koch-Kramer
dae18a05c6
Use anonymous session for profile pic query
2018-03-29 20:33:20 +02:00
André Koch-Kramer
c5b60b8a12
GraphQL for post locations
2018-03-29 20:31:39 +02:00
André Koch-Kramer
40a87761c9
Mention Windows standalone exe in documentation
2018-03-29 19:47:35 +02:00
André Koch-Kramer
d9b5c77e3a
Implement high quality profile pic hack
...
Use 'i.instagram.com' API to retrieve the best quality version of the
profile pic.
Related to #85 .
2018-03-29 19:33:05 +02:00
André Koch-Kramer
71331d37e4
Removed modifying of profilepic url
...
Since Instagram does not allow anymore to download pics without a valid
signature given in the URL, Instaloader has to be content with a
resolution for the profile pic that is provided in the JSON data.
Closes #85 .
2018-03-24 19:54:07 +01:00
André Koch-Kramer
91976e595a
Implements get_explore_posts()
2018-03-22 17:36:03 +01:00
André Koch-Kramer
90a1b73d21
Fix format_string_contains_key()
...
AttributeError occured if no parsable field was found in the specified
pattern.
Reported in #84 .
2018-03-21 22:25:40 +01:00
André Koch-Kramer
b3bae50ca1
Consistently replace all GQL Query IDs by Hashs
2018-03-19 21:20:19 +01:00
André Koch-Kramer
2b9ed927c7
Proper handle HTTP redirects in get_json()
...
This is necessary to preserve the GET parameters across redirects.
Additionally, it is nice to have a log output if a redirect occurs.
2018-03-19 21:05:13 +01:00
André Koch-Kramer
c1b9aa5fba
Download stories using GraphQL queries
...
As suggested in #71 , stories are now fetched using GraphQL queries.
This obviates the need of pretending to be a smartphone app and to do
some voodoo to the headers.
2018-03-18 20:17:47 +01:00
André Koch-Kramer
a7f89e4327
Release of version 3.3.2
2018-03-18 18:10:18 +01:00
André Koch-Kramer
af1ec22d41
Fix get_feed_posts() using graphql queries
...
Due to changes at Instagram's API, it seems like it is no longer
possible to get users' feeds without usage of graphql queries on some
accounts.
2018-03-18 17:56:33 +01:00
André Koch-Kramer
f55334cd5b
Fix KeyError on login attempt with wrong password
2018-03-18 17:41:03 +01:00
André Koch-Kramer
b2f31e7782
Add awesome logo to README
...
Due to rst limitations, the heading "Instaloader" was added beside the
logo inside the png.
2018-03-14 23:08:04 +01:00
André Koch-Kramer
4628f1cc8d
Reimplemented test_login() via graphql query
...
Fixes # 76.
2018-03-13 15:37:35 +01:00
André Koch-Kramer
de960b2b57
Mentione target :saved in README, docs and --help
2018-03-13 13:53:21 +01:00
André Koch-Kramer
b1edaddb31
Support for new target :saved
...
If logged in, Instaloader is now able to download posts which are marked
as saved. This feature was suggested in #78 .
2018-03-13 12:02:45 +01:00
André Koch-Kramer
01c2a2b1cb
Release of version 3.2.2
2018-02-15 16:13:36 +01:00
André Koch-Kramer
541b29b2e9
Remove signatures from profile pic URLs
...
Fixes #75 as suggested by @e5150.
2018-02-15 16:10:04 +01:00
André Koch-Kramer
6f3afd2fa1
Removed redundant character escapes in RegExp
2018-02-15 15:01:17 +01:00
André Koch-Kramer
882d460a67
Merge branch 'bug_69_fix'
2018-02-15 14:56:42 +01:00
André Koch-Kramer
9b11ca18d1
Added backward compatibility for --fast-update
...
This is related to bug #69 .
Filenames containing the old date encoding without UTC are now
recognized when using the `--fast-update` switch.
Also non-picture files using the old date encoding should now be
recognized even when not using the `--fast-update` switch, excluding
geotags and the post metadata JSON files. The files containing comments
get renamed to the new format when touched. Caption files are only
renamed, if they get updated. Stored picture files do not get renamed at
all.
2018-01-28 16:40:13 +01:00
André Koch-Kramer
3654d6bf6d
Use UTC in filenames per default
...
This adresses bug #69 .
All fields in the filename pattern that should be replaced by a date
encoding string (excluding {post.date_local}) are now evaluated using
UTC while ensuring that the replacing string indicates the use of UTC.
2018-01-10 22:26:49 +01:00
André Koch-Kramer
341030058b
Release of version 3.2.1
2017-12-11 21:21:07 +01:00
André Koch-Kramer
fd98e8e78f
Reduced GraphQL query chunks to 200
...
Fixes #59 .
2017-12-11 21:11:18 +01:00
André Koch-Kramer
9f34e3303e
Added basic usage to README and documentation
2017-11-10 18:55:52 +01:00
André Koch-Kramer
e9207f095f
Use Post class attributes in filename-pattern
...
- Added owner_id and mediaid to Post class properties.
- In case of not downloading stories, the attributes of the Post class
can now be used in filename-pattern, e.g. {post.owner_id} or {post.mediaid}.
Closes #53 .
2017-11-08 15:58:33 +01:00
André Koch-Kramer
ce13c0c53c
Corrected file extension on videos from stories
...
Closes #54 .
2017-11-08 13:45:29 +01:00
André Koch-Kramer
1928db63bb
Added ability to download videos within sidecars
...
Closes #41
2017-08-25 13:50:58 +02:00
André Koch-Kramer
1a26d7336c
Fix TypeError on retry in get_json()
2017-08-24 21:17:49 +02:00
André Koch-Kramer
bb71c40b56
Wait smarter to avoid HTTP error code 429
...
Additional sleeps are necessary because Instagram is rate limiting
GraphQL queries. The error does not occur if not more than 100 queries
are made in a sliding window of eleven minutes.
Ports a894c2d to version 3.
2017-08-24 18:30:46 +02:00
André Koch-Kramer
d28bd3ab52
Release of version 2.2.3
2017-08-13 14:39:35 +02:00
André Koch-Kramer
a894c2d206
Wait to avoid error code 429 (Too Many Requests)
...
Additional sleeps are necessary because Instagram is rate limiting
GraphQL queries. The error does not occur if not more than 100 queries
are made in a sliding window of eleven minutes.
Fixes #29
2017-08-12 19:57:54 +02:00
André Koch-Kramer
86fb80d7e4
Avoid GraphQL queries if all comments in metadata
...
If get_node_metadata() is able to provide all comments of a node, no
additional query is needed. Especially GraphQL queries are time
expensive because no more than 100 can be queried in ten minutes. Since
get_node_metadata() does not use GraphQL queries, this is a usefull
tradeoff.
+ Additional error handling
2017-08-12 19:04:22 +02:00
André Koch-Kramer
42864997b3
get_node_metadata() now also catches TypeError
...
Concerns #26
2017-08-08 00:43:52 +02:00
André Koch-Kramer
987d95c048
Forgot "file=" in some print statements
2017-08-05 00:22:43 +02:00
André Koch-Kramer
9b5d4e34fc
Raise and catch NodeUnavailableException
...
In case a node can not be downloaded or its metadata is needed and can
not be retrieved, a NodeUnavailableException is raised and the according
node will be skipped.
Concerns #26
2017-08-04 19:19:56 +02:00
André Koch-Kramer
6b520f6a2d
Release of version 2.2
2017-08-01 16:41:42 +02:00
André Koch-Kramer
c3a5557140
Additionally catch HTTPError and RequestException
...
Concerns issue #26 .
2017-08-01 16:30:59 +02:00
André Koch-Kramer
0ad50c1526
Fix error on downloading own private profile
...
Closes #27 .
2017-07-31 21:18:42 +02:00
André Koch-Kramer
9fbe9b0903
Retry get requests for downloading pictures
...
Tries to workaround #26 .
2017-07-31 20:34:27 +02:00
André Koch-Kramer
48d6f0226b
Added Disclaimer to README
2017-07-29 05:24:48 +02:00
André Koch-Kramer
82ae31cea5
Fix download_stories() to get all available posts
...
download_stories() did and does not check if a story is "unseen". The
response to the query of the '/feed/reels_tray/' URL provides all
available stories of the user's followees. Nevertheless, some of them do
not contain an 'items' field which has no causal relationship with their
status in terms of "seen" or "unseen". Therefore, to overcome this lack
of 'items' the 'feed/user/TARGET_USERID/reel_media/' URL needs to be
queried for each relevant followee whose 'items' were not provided in
the first place.
2017-07-29 04:12:26 +02:00
André Koch-Kramer
3e0b81ad56
copy_session() now also copies session.headers
...
Store a shallow copy of the headers rather than just create bindings
between the headers of the original and the newly created session object.
2017-07-29 01:54:42 +02:00