Commit Graph
79 Commits
Author SHA1 Message Date
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
André Koch-Kramer 99620ec766 Allow subdirectories in filename pattern
Changed invocations of os.makedirs() in order to respect directories in
the filename pattern.
2017-07-29 01:40:53 +02:00
André Koch-Kramer 13d288ef36 Minor fixes of download_stories()
Concerning pull request #28.
2017-07-28 19:49:48 +02:00
André Koch-Kramer 1699954761 Disable some trolling pylint features 2017-07-27 22:26:33 +02:00
André Koch-Kramer 7cac6d53f2 Minor code adaptions for consistency reasons
Concerning pull request #28.
2017-07-27 22:18:43 +02:00
André Koch-Kramer 2205bbcf45 Release of version 2.1 2017-07-26 20:06:34 +02:00
André Koch-Kramer c299e9d1a2 Updated README + {date} default format added 2017-07-26 19:13:56 +02:00
André Koch-Kramer bf5e3b90d0 Updated descriptions consistent with docstring 2017-07-26 14:43:08 +02:00
André Koch-Kramer d614d9f015 Release of version 2.0 2017-07-22 18:43:54 +02:00
André Koch-Kramer 051a6fa9d0 args.comments 2017-07-21 15:32:41 +02:00
André Koch-Kramer 169ce1a300 Download comments
Close #5
2017-07-20 22:36:30 +02:00
André Koch-Kramer 1fdce16f46 Fix get_followees() and implement get_followers() 2017-07-20 18:01:29 +02:00
André Koch-Kramer 8607135740 Satisfy pylint 2017-07-14 05:37:36 +02:00
André Koch-Kramer ca2829becc Fixed and reimplemented get_username_by_id() 2017-07-14 05:18:18 +02:00
André Koch-Kramer 715582138b Replaced usages of shortcode with mediaid 2017-07-13 22:33:01 +02:00
André Koch-Kramer 184c521646 Added functions to convert mediaid <-> shortcode 2017-07-06 22:26:25 +02:00
André Koch-Kramer 5ae3d7090f Minor bug fixes
- Adjust comment in test()
- Added exception handling when loading a sessionfile
- Corrected control flow in interactive_login()
2017-06-30 15:45:38 +02:00
André Koch-Kramer 52492456ed Release of version 1.3 2017-04-22 18:01:54 +02:00
André Koch-Kramer fdb8e94c64 Fixed ":feed-liked" functionality 2017-04-22 17:26:48 +02:00
André Koch-KramerandAlexander Graf 2106c2d5f6 Satisfy pylint after their update 2017-04-22 11:13:10 +02:00
André Koch-Kramer 0e943189e5 Parse graphql structure for sidecars 2017-04-22 10:50:12 +02:00
André Koch-Kramer 8e77a1c125 Fixed download_node() 2017-04-22 01:39:52 +02:00
André Koch-Kramer 361445519a Adapt new graphql layout used by Instagram
Fixes #19.
2017-04-21 18:10:41 +02:00
André Koch-Kramer 13ebcb782e Release of version 1.2 2016-09-22 19:04:25 +02:00
André Koch-Kramer 50faad0a04 Minimal updated description 2016-09-22 19:02:26 +02:00
André Koch-Kramer 98c2847afd Implemented feature: store geotags/locations 2016-09-22 18:28:13 +02:00
André Koch-Kramer 0088ee5e9e Added handling of UnicodeEncodeError
- Only try to print captions if possible
- Added option '--shorter-output' to disable output of captions
2016-08-04 19:36:36 +02:00
André Koch-Kramer b71179371d Do not sleep when --no-sleep is given 2016-08-03 20:25:16 +02:00
André Koch-Kramer 77d0d272fc Implementation of get_id_by_username()
+ updated README.md
2016-08-02 21:27:39 +02:00
André Koch-Kramer e6ca038e25 Store ID of profile to find it after name change
Closes #9.
2016-08-02 18:54:30 +02:00
André Koch-Kramer 4fb574253e change import order to satisfy pylint 2016-08-02 18:41:57 +02:00
André Koch-Kramer 584c3cc76c Release of version 1.0.1 2016-08-01 18:16:47 +02:00
André Koch-Kramer dd383d8887 Fix Windows Unicode Problems
Closes #11.

instaloader now tries to use win-unicode-console when recognizing
windows.
2016-08-01 18:10:35 +02:00
André Koch-Kramer 8524c8a2f2 Output captions while downloading profiles 2016-07-29 16:53:18 +02:00
André Koch-Kramer f3a52c6f4d Release of version 1.0 2016-07-28 18:30:44 +02:00
André Koch-Kramer 651b590cfa Implementation of get_username_by_id() 2016-07-28 18:15:36 +02:00
André Koch-Kramer 9d1af7adaf Reimplemented test_login()
The username does not need to be given anymore at call of
test_login(). Now, the function uses the given session to lookup the
corresponding username.
2016-07-28 17:44:02 +02:00
André Koch-Kramer e464787772 Implementation of gathering followees functionality
usage: get_followees(login, session)
2016-07-28 15:55:19 +02:00
André Koch-Kramer b0a6677c76 Update X-CSRFToken header when loading session 2016-07-28 15:52:28 +02:00
André Koch-Kramer e2d8c34eac Don't download data json twice on private profiles
Fixes #6.
2016-07-15 15:30:35 +02:00
André Koch-Kramer bd190159f6 Always save session object when finishing download
Fix #1.
2016-07-15 15:04:29 +02:00
André Koch-Kramer ac3791c0b8 More serious error msg in case of nonexisting user 2016-07-04 23:50:20 +02:00
André Koch-Kramer 349181c62d Fix #1.
... with dirty hack.
2016-07-04 23:44:14 +02:00
André Koch-Kramer 7c3ca67a20 Intensive refactoring to satisfy pylint 2016-06-27 16:49:00 +02:00
André Koch-Kramer d7d4d59bab Fix of trolling infinite loop
- used to infinite loop when given wrong credentials
- now unable to invoke time.sleep() with negative values
- const argument becomes obsolete without nargs
2016-06-27 15:34:26 +02:00
André Koch-Kramer 4dedc86556 Ich hab mal ins Datenblatt geschaut.
Dabei hat sich herausgestellt, dass die regex hessischen Ursprungs war.
Außerdem hat Instagram wieder irgendwas an den URLs geändert.
2016-06-23 20:55:50 +02:00
André Koch-Kramer e837c8ab5a updated url parsing, fixed login functionality
- Instagram changed url style => accordingly updated parser
- successfully tested login and download of private profiles
- prevent echoing at password prompt
2016-06-22 14:00:22 +02:00
André Koch-Kramer 1c83e324b6 Changed User-Agent + download of private profiles
first attempt to implement login for downloading private profiles
2016-06-21 19:37:14 +02:00
André Koch-KramerandAlexander Graf 0df54143e5 Initial commit 2016-06-15 12:42:08 +02:00