1
0
mirror of https://github.com/instaloader/instaloader.git synced 2024-11-09 03:42:31 +01:00
Commit Graph

67 Commits

Author SHA1 Message Date
Alexander Graf
35bd8357d1 Merge branch 'master' into upcoming/v4.8 2021-07-24 19:28:53 +02:00
Alexander Graf
8c1129e556 Add GitHub Sponsors link 2021-06-20 13:50:59 +02:00
Eduardo Kalinowski
d142fb70b0
--latest-stamps, like --fast-update, but without the need to keep downloaded files (#1131)
Adds the --latest-stamps command line option, pointing to a file where
the latest time each profile was scraped. On the next run, only posts
newer than that time are downloaded.

Fixes #1122.
2021-05-27 18:22:33 +02:00
Alexander Graf
dfdd744804 Minor fixes to top-level README.md 2021-02-24 16:00:28 +01:00
Alexander Graf
d5dd8cec00 Fix Downloads/Month Badge
Change to pepy.tech as source for this badge.
2020-08-06 09:43:22 +02:00
Alexander Graf
bc40b82f94
Resume a previously-aborted post download loop (#732)
With this change, Instaloader is capable of resuming a previously-aborted download loop. To do so, it creates a JSON file within the target directory when interrupted, that contains all the necessary information to later resume that operation.

Resuming an interrupted download is supported for most, but not all targets. It is supported for:

- Regular profile posts,
- IGTV posts
- Saved posts,
- Tagged posts,
- Explore posts.
2020-07-21 17:28:55 +02:00
Alexander Graf
78a93c945e Revert "Revert "Remove nonworking saythanks.io link""
saythanks.io does not work again and the link is now removed.
This reverts commit b2acbcf0e0.
2020-03-14 17:56:44 +01:00
Alexander Graf
6cc2ed54ea Download IGTV Videos of a Profile (--igtv) 2020-03-14 16:56:51 +01:00
Alexander Graf
b2acbcf0e0 Revert "Remove nonworking saythanks.io link"
saythanks.io works again. This reverts commit
f966ea5bb9.
2020-02-04 09:23:02 +01:00
Alexander Graf
f966ea5bb9 Remove nonworking saythanks.io link
saythanks.io stopped working, BlitzKraft/saythanks.io#60.
2020-01-27 21:31:47 +01:00
Alexander Graf
8ef7b3242c Add trendy Badges to README.rst and index.rst 2019-05-07 18:01:13 +02:00
Alexander Graf
b443cc6654 Minor doc fixes and improvements 2018-08-24 11:53:14 +02:00
Alexander Graf
0f0ac13d72 reorder --help output 2018-08-20 14:27:58 +02:00
Alexander Graf
998333b7cd Revert "Mention IRC channel #instaloader on Freenode"
This reverts commit 8423e3bd00. The channel did
not have as much activity as expected and an IRC channel does not work if there
are not at least a few people in it.
2018-08-07 19:57:10 +02:00
André Koch-Kramer
0ebb223214 Added BTC address to donations section
Motivated by #130.
2018-07-23 23:36:46 +02:00
Alexander Graf
8423e3bd00 Mention IRC channel #instaloader on Freenode 2018-07-22 10:55:29 +02: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
Alexander Graf
5f34fca9e7 Merge branch 'v3.3-dev' 2018-03-13 16:22:37 +01:00
Alexander Graf
e97411a502 Mention :saved in all places of documentation 2018-03-13 15:36:27 +01:00
Alexander Graf
304cde64fe Link to github pages doc hosting rather than rtd 2018-03-13 15:11:36 +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
9f34e3303e Added basic usage to README and documentation 2017-11-10 18:55:52 +01:00
Alexander Graf
9a72f85a0e Documentation Enhancements 2017-09-08 10:35:38 +02:00
Alexander Graf
12d34143c2 very minor documentation fixes 2017-08-30 09:50:26 +02:00
Alexander Graf
e143096140 Minor documentation fixes 2017-08-29 12:13:38 +02:00
Alexander Graf
5b5d540310 caption_hashtags property for only-if evaluation
caption_hashtags is a list of all hashtags that are mentioned in the
Post's caption. It allows to easily filter Posts that have multiple
hashtags, and as such fixes #24.

Further, the documentation of --only-if has been completed by linking to
a description of the syntax in the Python documentation, and by linking
to a list of all defined properties with their meanings. So, this commit
also closes #42.
2017-08-29 11:03:12 +02:00
Alexander Graf
d84136b2dd Minor doc-related improvements 2017-08-28 21:45:43 +02:00
Alexander Graf
5aff8273b0 Minor tweaks to documentation 2017-08-26 12:42:04 +02:00
Alexander Graf
90c5cc3c72 Minor documentation tunings 2017-08-25 22:38:54 +02:00
Alexander Graf
ec2e09edcf Create minimal documentation with Sphinx 2017-08-25 16:54:36 +02:00
Alexander Graf
9939eab8ec Minor fixes to README.rst 2017-08-24 17:23:46 +02:00
Alexander Graf
c61d6a93b2 Restructure README.rst 2017-08-24 17:10:32 +02:00
Alexander Graf
bbdd3873e2 --skip-videos -> --no-videos; no --shorter-output 2017-08-24 16:03:24 +02:00
Alexander Graf
dd99417e7b Require win_unicode_console on Windows Python 3.5 2017-08-24 15:40:41 +02:00
Alexander Graf
566ef02b94 Change sleep interval between requests
These are now adapted to how many requests have already been done. With
the current settings, Instaloader does not more than

12 request in the first ten seconds,
28 requests in the first minute,
40 requests in the first two minutes,
63 requests in the first five minutes,
90 requests in the first ten minutes,
and after that 50 requests per ten minutes.

This should make it less likely that Instaloader is rate-limited by
Instagram, while still being fast if downloading only a few posts.

Further, option --no-sleep is hidden in --help output and README.rst.
2017-08-20 11:31:46 +02:00
Alexander Graf
ee9993d7c2 Filter posts with --only-if=FILTER
where FILTER is a boolean expression in python syntax where all names
are evaluated to instaloader.Post properties.

Examples:

instaloader --login=USER --only-if='viewer_has_liked' :feed

instaloader --only-if='likes>1000 and comments>5' profile
2017-08-19 17:54:23 +02:00
Alexander Graf
0f64768dd8 Post class representing an Instagram Post
This simplifies accessing properties of a Post. Method download_post()
remains to class Instaloader rather than Post, as it fits there better.

Also, since it is now easily possible, all download_*() functions now
have a filter_func parameter. Its meaning has been reverted to be
consistent of how a filter is commonly understood: A post is downloaded
iff filter_func is None or evaluates to True.

Post.get_comments() foreports commit 86fb80d ("Avoid GraphQL queries if
all comments in metadata").
2017-08-19 13:02:49 +02:00
Alexander Graf
117124d1dd Options --no-captions and --no-geotags
These options instruct instaloader to not save captions or geotags
respectively, even if the regarding information can be obtained without
any additional queries to Instagram.

This feature was proposed in #25, and thus this commit should close #25.
2017-08-11 19:54:10 +02:00
Alexander Graf
0d9af81ae7 Minor enhancements
Get rid of NonfatalException (an exception is nonfatal iff it is
catched somewhere)

Foreport fixes for #26 and #30.

The current __sersion__ string is now kept in instaloader.py rather than
setup.py. This lets instaloader.__version__ always deliver the version
of the actually-loaded Instaloader module.

Minor changes to README.rst, error handling and which class methods are
public.

With these and the changes of the previous commit, we saved 31 lines of
code, indicating that it might be easier to understand and to maintain.
2017-08-11 18:20:58 +02:00
Alexander Graf
58882f508e Major code cleanup
Remove many code duplications, merely by using more pythonic idioms.

Use GraphQL more often.

Better cope with errors: All requests can be retried; failed requests do
not cause program termination; all error strings are repeated to the
user at the end of execution.

download_post() (formerly download_node()) does not repeat node metadata
request (before this commit, this request was executed up to three
times).
2017-08-06 19:27:46 +02:00
Alexander Graf
4b8b257672 Fix rst formatting in README 2017-07-29 21:51:51 +02:00
Alexander Graf
b1b90f8abf target :stories; flags --stories & --stories-only
This allows to invoke the new download_stories() function contributed
in #28 by command line.
2017-07-29 17:51:39 +02:00
André Koch-Kramer
48d6f0226b Added Disclaimer to README 2017-07-29 05:24:48 +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
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
Alexander Graf
8572e527ec Options --dirname-pattern and --filename-pattern
Instaloader downloads all posts in

  <DIRNAME>/<FILENAME>+(suffix and extension)

which are now generated by the templates given with --dirname-pattern
and --filename-pattern. These templates may contain specifiers such as
'{target}', '{profile}', '{date}' and '{shortcode}'.

Default for --dirname-pattern is '{target}', default for
--filename-pattern is '{date:%Y-%m-%d_%H-%M-%S}'

The former options --no-profile-subdir and --hashtag-username were
removed, because their behavior can now be achieved like this:

--no-profile-subdir and --hashtag-username:
--dirname-pattern='.' --filename-pattern='{profile}__{date:%Y-%m-%d_%H-%M-%S}'

--no-profile-subdir, but not --hashtag-username:
--dirname-pattern='.' --filename-pattern='{target}__{date:%Y-%m-%d_%H-%M-%S}'

--hashtag-username but not --no-profile-subdir:
--dirname-pattern='{profile}'

This adds the option proposed in #23, to encode both the hashtag and the
profile name in the file's path when downloading by hashtag, e.g.:
--dirname-pattern='{target}' --filename-pattern='{profile}_{date:%Y-%m-%d_%H-%M-%S}'

(Closes #23)
2017-07-25 18:45:01 +02:00
André Koch-Kramer
169ce1a300 Download comments
Close #5
2017-07-20 22:36:30 +02:00
Alexander Graf
ee8e159d56 Fix README regarding when profiles are found by ID 2017-07-20 18:19:15 +02:00
André Koch-Kramer
1fdce16f46 Fix get_followees() and implement get_followers() 2017-07-20 18:01:29 +02:00