mirror of
https://github.com/instaloader/instaloader.git
synced 2026-10-19 07:02:16 -07:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d614d9f015 | ||
|
|
051a6fa9d0 | ||
|
|
169ce1a300 | ||
|
|
ee8e159d56 | ||
|
|
b3f916b371 | ||
|
|
1fdce16f46 | ||
|
|
dd513f7190 | ||
|
|
7198f1ad9f | ||
|
|
58c12d5618 | ||
|
|
1e10ab8669 | ||
|
|
c0eecd1bd2 | ||
|
|
8607135740 | ||
|
|
ca2829becc | ||
|
|
715582138b | ||
|
|
184c521646 | ||
|
|
5ae3d7090f | ||
|
|
4768fdbd10 | ||
|
|
591dfd31e4 | ||
|
|
caf75a8135 |
+1
-1
@@ -9,4 +9,4 @@ python:
|
||||
install:
|
||||
- pip install pylint requests
|
||||
script:
|
||||
- python3 -m pylint -r n -d bad-whitespace,bad-continuation,missing-docstring,multiple-imports,too-many-arguments,locally-disabled,line-too-long instaloader
|
||||
- python3 -m pylint -r n -d bad-whitespace,missing-docstring,too-many-arguments,locally-disabled,line-too-long,too-many-public-methods,too-many-lines instaloader
|
||||
|
||||
+101
-35
@@ -99,29 +99,86 @@ Advanced Options
|
||||
The following flags can be given to Instaloader to specify how profiles should
|
||||
be downloaded.
|
||||
|
||||
--fast-update Stop when encountering the first already-downloaded post
|
||||
of a profile.
|
||||
--profile-pic-only Only download profile pictures. Without this flag, the current
|
||||
profile picture and all the profile's posts are downloaded.
|
||||
--skip-videos Skip posts which are videos.
|
||||
--geotags Also **download geotags** and store Google Maps links in
|
||||
separate textfiles.
|
||||
--count COUNT If used with ``#hashtag``, ``:feed-all`` or
|
||||
``:feed-liked``: Do not attempt to download more than COUNT
|
||||
posts.
|
||||
--quiet Do not output any messages except warnings and errors. This
|
||||
option makes Instaloader **suitable as a cron job**.
|
||||
--no-sleep Normally, Instaloader waits a few seconds between requests
|
||||
to the Instagram servers. This flag inhibits this behavior.
|
||||
--password PASSWORD If used with ``--login``, use parameter as password if no
|
||||
valid session file is found, instead of asking
|
||||
interactively.
|
||||
--sessionfile FILE Specify an alternative place for loading and storing the
|
||||
session cookies. Without this flag, they are stored in a path
|
||||
within your temporary directory, encoding your local
|
||||
username and your instagram profile name.
|
||||
To get a list of all flags, their abbreviations and their descriptions, you may
|
||||
run ``instaloader --help``.
|
||||
|
||||
To get a list of all flags, run ``instaloader --help``.
|
||||
What to Download
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
Specify a list of profiles or #hashtags. For each of these, Instaloader
|
||||
creates a folder and downloads all posts along with the pictures's
|
||||
captions and the current **profile picture**. If an already-downloaded profile
|
||||
has been renamed, Instaloader automatically **finds it by its unique ID** and
|
||||
renames the folder likewise.
|
||||
|
||||
--profile-pic-only Only download profile picture.
|
||||
--skip-videos Do not download videos.
|
||||
--geotags **Download geotags** when available. Geotags are stored as
|
||||
a text file with the location's name and a Google Maps
|
||||
link. This requires an additional request to the
|
||||
Instagram server for each picture, which is why it is
|
||||
disabled by default.
|
||||
--comments Download and update comments for each post. This
|
||||
requires an additional request to the Instagram server
|
||||
for each post, which is why it is disabled by default.
|
||||
|
||||
When to Stop Downloading
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
If none of these options are given, Instaloader goes through all pictures
|
||||
matching the specified targets.
|
||||
|
||||
--fast-update For each target, stop when encountering the first
|
||||
already-downloaded picture. This flag is recommended
|
||||
when you use Instaloader to update your personal
|
||||
Instagram archive.
|
||||
--count COUNT Do not attempt to download more than COUNT posts.
|
||||
Applies only to ``#hashtag``, ``:feed-all`` and ``:feed-liked``.
|
||||
|
||||
|
||||
Login (Download Private Profiles)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Instaloader can **login to Instagram**. This allows downloading private
|
||||
profiles. To login, pass the ``--login`` option. Your session cookie (not your
|
||||
password!) will be saved to a local file to be reused next time you want
|
||||
Instaloader to login.
|
||||
|
||||
--login YOUR-USERNAME Login name (profile name) for your Instagram account.
|
||||
--sessionfile SESSIONFILE Path for loading and storing session key file.
|
||||
Defaults to a path
|
||||
within your temporary directory, encoding your local
|
||||
username and your Instagram profile name.
|
||||
--password YOUR-PASSWORD Password for your Instagram account. Without this
|
||||
option, you'll be prompted for your password
|
||||
interactively if there is not yet a valid session
|
||||
file.
|
||||
|
||||
How to Download
|
||||
^^^^^^^^^^^^^^^
|
||||
|
||||
--no-profile-subdir Instead of creating a subdirectory for each profile
|
||||
and storing pictures there, store pictures in files
|
||||
named ``PROFILE__DATE_TIME.jpg``.
|
||||
--hashtag-username Lookup username of pictures when downloading by
|
||||
#hashtag and encode it in the downlaoded file's path
|
||||
or filename (if ``--no-profile-subdir``). Without this
|
||||
option, the #hashtag is used instead. This requires an
|
||||
additional request to the Instagram server for each
|
||||
picture, which is why it is disabled by default.
|
||||
--user-agent USER_AGENT User Agent to use for HTTP requests. Per default,
|
||||
Instaloader pretends being Chrome/51.
|
||||
--no-sleep Do not sleep between requests to Instagram's servers.
|
||||
This makes downloading faster, but may be suspicious.
|
||||
|
||||
Miscellaneous Options
|
||||
^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
--shorter-output Do not display captions while downloading.
|
||||
--quiet Disable user interaction, i.e. do not print messages
|
||||
(except errors) and fail if login credentials are
|
||||
needed but not given. This makes Instaloader
|
||||
**suitable as a cron job**.
|
||||
|
||||
Usage as Python module
|
||||
----------------------
|
||||
@@ -129,20 +186,29 @@ Usage as Python module
|
||||
You may also use parts of Instaloader as library to do other interesting
|
||||
things.
|
||||
|
||||
For example, to get a list of all followees of a profile as well as
|
||||
their follower count, do
|
||||
For example, to get a list of all followees and a list of all followers of a profile, do
|
||||
|
||||
.. code:: python
|
||||
|
||||
import instaloader
|
||||
|
||||
# login
|
||||
session = instaloader.get_logged_in_session(USERNAME)
|
||||
# Get instance
|
||||
loader = instaloader.Instaloader()
|
||||
|
||||
# get followees
|
||||
followees = instaloader.get_followees(PROFILE, session)
|
||||
# Login
|
||||
loader.interactive_login(USERNAME)
|
||||
|
||||
# Retrieve followees
|
||||
followees = loader.get_followees(PROFILE)
|
||||
print(PROFILE + " follows these profiles:")
|
||||
for f in followees:
|
||||
print("%i\t%s\t%s" % (f['follower_count'], f['username'], f['full_name']))
|
||||
print("\t%s\t%s" % (f['username'], f['full_name']))
|
||||
|
||||
# Retrieve followers
|
||||
followers = loader.get_followers(PROFILE)
|
||||
print("Followers of " + PROFILE + ":")
|
||||
for f in followers:
|
||||
print("\t%s\t%s" % (f['username'], f['full_name']))
|
||||
|
||||
Then, you may download all pictures of all followees with
|
||||
|
||||
@@ -150,7 +216,7 @@ Then, you may download all pictures of all followees with
|
||||
|
||||
for f in followees:
|
||||
try:
|
||||
instaloader.download(f['username'], session)
|
||||
loader.download(f['username'])
|
||||
except instaloader.NonfatalException:
|
||||
pass
|
||||
|
||||
@@ -158,15 +224,15 @@ You could also download your last 20 liked pics with
|
||||
|
||||
.. code:: python
|
||||
|
||||
instaloader.download_feed_pics(session, max_count=20, fast_update=True,
|
||||
filter_func=lambda node:
|
||||
oader.download_feed_pics(max_count=20, fast_update=True,
|
||||
filter_func=lambda node:
|
||||
not node["likes"]["viewer_has_liked"] if "likes" in node else not node["viewer_has_liked"])
|
||||
|
||||
To download the last 20 pictures with hashtag #cat, do
|
||||
|
||||
.. code:: python
|
||||
|
||||
instaloader.download_hashtag('cat', session=instaloader.get_anonymous_session(), max_count=20)
|
||||
loader.download_hashtag('cat', max_count=20)
|
||||
|
||||
Each Instagram profile has its own unique ID which stays unmodified even
|
||||
if a user changes his/her username. To get said ID, given the profile's
|
||||
@@ -174,7 +240,7 @@ name, you may call
|
||||
|
||||
.. code:: python
|
||||
|
||||
instaloader.get_id_by_username(PROFILE_NAME)
|
||||
loader.get_id_by_username(PROFILE_NAME)
|
||||
|
||||
``get_followees()`` also returns unique IDs for all loaded followees. To
|
||||
get the current username of a profile, given this unique ID
|
||||
@@ -182,4 +248,4 @@ get the current username of a profile, given this unique ID
|
||||
|
||||
.. code:: python
|
||||
|
||||
instaloader.get_username_by_id(session, followees[0]['id'])
|
||||
loader.get_username_by_id(followees[0]['id'])
|
||||
|
||||
+941
-726
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user