mirror of
https://github.com/instaloader/instaloader.git
synced 2026-10-19 15:12:16 -07:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
01fc150e78 | ||
|
|
46ac119a10 | ||
|
|
6b520f6a2d | ||
|
|
c3a5557140 | ||
|
|
0ad50c1526 | ||
|
|
9fbe9b0903 | ||
|
|
4b8b257672 | ||
|
|
b1b90f8abf | ||
|
|
66f69b5c21 | ||
|
|
48d6f0226b | ||
|
|
82ae31cea5 | ||
|
|
3e0b81ad56 | ||
|
|
99620ec766 | ||
|
|
13d288ef36 | ||
|
|
b85e8fd793 | ||
|
|
1699954761 | ||
|
|
7cac6d53f2 | ||
|
|
c355338010 | ||
|
|
2205bbcf45 | ||
|
|
c299e9d1a2 | ||
|
|
151ccfd71d | ||
|
|
bf5e3b90d0 | ||
|
|
56b27fb26f | ||
|
|
8572e527ec | ||
|
|
5068c9453e |
+1
-1
@@ -9,4 +9,4 @@ python:
|
|||||||
install:
|
install:
|
||||||
- pip install pylint requests
|
- pip install pylint requests
|
||||||
script:
|
script:
|
||||||
- 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
|
- 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,too-many-instance-attributes,too-many-locals,too-many-branches,too-many-statements instaloader
|
||||||
|
|||||||
+59
-11
@@ -1,7 +1,7 @@
|
|||||||
Instaloader
|
Instaloader
|
||||||
===========
|
===========
|
||||||
|
|
||||||
Tool to automatically download pictures (or videos) of given profiles
|
Download pictures (or videos) along with their captions and other metadata
|
||||||
from Instagram.
|
from Instagram.
|
||||||
|
|
||||||
Installation
|
Installation
|
||||||
@@ -68,6 +68,13 @@ in your temporary directory, which will be reused later when ``--login`` is give
|
|||||||
you can download private profiles **non-interactively** when you already
|
you can download private profiles **non-interactively** when you already
|
||||||
have a valid session cookie file.
|
have a valid session cookie file.
|
||||||
|
|
||||||
|
Besides downloading private profiles, being logged in allows to
|
||||||
|
**download stories**:
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
instaloader --login=your_username --stories profile [profile ...]
|
||||||
|
|
||||||
You may also download
|
You may also download
|
||||||
**the most recent pictures by hashtag**:
|
**the most recent pictures by hashtag**:
|
||||||
|
|
||||||
@@ -75,6 +82,15 @@ You may also download
|
|||||||
|
|
||||||
instaloader "#hashtag"
|
instaloader "#hashtag"
|
||||||
|
|
||||||
|
This downloads the requested posts into a directory named according to the specified
|
||||||
|
hashtag and the filenames correspond to the timestamp of the posts.
|
||||||
|
As with all download tasks, this behavior can easily be customized, for example
|
||||||
|
encode the poster's profile name in the filenames:
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
instaloader --filename-pattern={date}_{profile} "#hashtag"
|
||||||
|
|
||||||
If you want to **download all followees of a given profile**, call
|
If you want to **download all followees of a given profile**, call
|
||||||
|
|
||||||
::
|
::
|
||||||
@@ -93,6 +109,12 @@ or to **download all pictures from your feed**:
|
|||||||
|
|
||||||
instaloader --login=your_username :feed-all
|
instaloader --login=your_username :feed-all
|
||||||
|
|
||||||
|
**Download all stories** from the profiles you follow:
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
instaloader --login=your_username --filename-pattern={date}_{profile} :stories
|
||||||
|
|
||||||
Advanced Options
|
Advanced Options
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
@@ -111,6 +133,11 @@ captions and the current **profile picture**. If an already-downloaded profile
|
|||||||
has been renamed, Instaloader automatically **finds it by its unique ID** and
|
has been renamed, Instaloader automatically **finds it by its unique ID** and
|
||||||
renames the folder likewise.
|
renames the folder likewise.
|
||||||
|
|
||||||
|
Instead of a *profile* or a *#hashtag*, the special targets
|
||||||
|
``:feed-all`` (pictures from your feed),
|
||||||
|
``:feed-liked`` (pictures from your feed which you liked), and
|
||||||
|
``:stories`` (stories of your followees) can be specified.
|
||||||
|
|
||||||
--profile-pic-only Only download profile picture.
|
--profile-pic-only Only download profile picture.
|
||||||
--skip-videos Do not download videos.
|
--skip-videos Do not download videos.
|
||||||
--geotags **Download geotags** when available. Geotags are stored as
|
--geotags **Download geotags** when available. Geotags are stored as
|
||||||
@@ -121,6 +148,11 @@ renames the folder likewise.
|
|||||||
--comments Download and update comments for each post. This
|
--comments Download and update comments for each post. This
|
||||||
requires an additional request to the Instagram server
|
requires an additional request to the Instagram server
|
||||||
for each post, which is why it is disabled by default.
|
for each post, which is why it is disabled by default.
|
||||||
|
--stories Also **download stories** of each profile that is
|
||||||
|
downloaded. Requires ``--login``.
|
||||||
|
--stories-only Rather than downloading regular posts of each
|
||||||
|
specified profile, only download stories.
|
||||||
|
Requires ``--login``.
|
||||||
|
|
||||||
When to Stop Downloading
|
When to Stop Downloading
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
@@ -157,15 +189,19 @@ Instaloader to login.
|
|||||||
How to Download
|
How to Download
|
||||||
^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
--no-profile-subdir Instead of creating a subdirectory for each profile
|
--dirname-pattern DIRNAME_PATTERN
|
||||||
and storing pictures there, store pictures in files
|
Name of directory where to store posts. ``{profile}``
|
||||||
named ``PROFILE__DATE_TIME.jpg``.
|
is replaced by the profile name, ``{target}`` is replaced
|
||||||
--hashtag-username Lookup username of pictures when downloading by
|
by the target you specified, i.e. either ``:feed``,
|
||||||
#hashtag and encode it in the downlaoded file's path
|
``#hashtag`` or the profile name. Defaults to ``{target}``.
|
||||||
or filename (if ``--no-profile-subdir``). Without this
|
--filename-pattern FILENAME_PATTERN
|
||||||
option, the #hashtag is used instead. This requires an
|
Prefix of filenames. Posts are stored in the
|
||||||
additional request to the Instagram server for each
|
directory whose pattern is given with ``--dirname-pattern``.
|
||||||
picture, which is why it is disabled by default.
|
``{profile}`` is replaced by the profile name,
|
||||||
|
``{target}`` is replaced by the target you specified, i.e.
|
||||||
|
either ``:feed``, ``#hashtag`` or the profile name. Also, the
|
||||||
|
fields ``{date}`` and ``{shortcode}`` can be specified.
|
||||||
|
Defaults to ``{date:%Y-%m-%d_%H-%M-%S}``.
|
||||||
--user-agent USER_AGENT User Agent to use for HTTP requests. Per default,
|
--user-agent USER_AGENT User Agent to use for HTTP requests. Per default,
|
||||||
Instaloader pretends being Chrome/51.
|
Instaloader pretends being Chrome/51.
|
||||||
--no-sleep Do not sleep between requests to Instagram's servers.
|
--no-sleep Do not sleep between requests to Instagram's servers.
|
||||||
@@ -224,7 +260,7 @@ You could also download your last 20 liked pics with
|
|||||||
|
|
||||||
.. code:: python
|
.. code:: python
|
||||||
|
|
||||||
oader.download_feed_pics(max_count=20, fast_update=True,
|
loader.download_feed_pics(max_count=20, fast_update=True,
|
||||||
filter_func=lambda node:
|
filter_func=lambda node:
|
||||||
not node["likes"]["viewer_has_liked"] if "likes" in node else not node["viewer_has_liked"])
|
not node["likes"]["viewer_has_liked"] if "likes" in node else not node["viewer_has_liked"])
|
||||||
|
|
||||||
@@ -234,6 +270,12 @@ To download the last 20 pictures with hashtag #cat, do
|
|||||||
|
|
||||||
loader.download_hashtag('cat', max_count=20)
|
loader.download_hashtag('cat', max_count=20)
|
||||||
|
|
||||||
|
If logged in, Instaloader is also able to download user stories:
|
||||||
|
|
||||||
|
.. code:: python
|
||||||
|
|
||||||
|
loader.download_stories()
|
||||||
|
|
||||||
Each Instagram profile has its own unique ID which stays unmodified even
|
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
|
if a user changes his/her username. To get said ID, given the profile's
|
||||||
name, you may call
|
name, you may call
|
||||||
@@ -249,3 +291,9 @@ get the current username of a profile, given this unique ID
|
|||||||
.. code:: python
|
.. code:: python
|
||||||
|
|
||||||
loader.get_username_by_id(followees[0]['id'])
|
loader.get_username_by_id(followees[0]['id'])
|
||||||
|
|
||||||
|
Disclaimer
|
||||||
|
----------
|
||||||
|
|
||||||
|
This code is in no way affiliated with, authorized, maintained or endorsed by Instagram or any of its affiliates or
|
||||||
|
subsidiaries. This is an independent and unofficial project. Use at your own risk.
|
||||||
+406
-299
File diff suppressed because it is too large
Load Diff
@@ -8,15 +8,14 @@ if sys.version_info < (3, 5):
|
|||||||
|
|
||||||
setup(
|
setup(
|
||||||
name='instaloader',
|
name='instaloader',
|
||||||
version='2.0',
|
version='2.2.1',
|
||||||
py_modules=['instaloader'],
|
py_modules=['instaloader'],
|
||||||
url='https://github.com/Thammus/instaloader',
|
url='https://github.com/Thammus/instaloader',
|
||||||
license='MIT',
|
license='MIT',
|
||||||
author='Alexander Graf, André Koch-Kramer',
|
author='Alexander Graf, André Koch-Kramer',
|
||||||
author_email='mail@agraf.me, koch-kramer@web.de',
|
author_email='mail@agraf.me, koch-kramer@web.de',
|
||||||
description='Tool to download Instagram pictures (or videos) and captions from a given set of '
|
description='Download pictures (or videos) along with their captions and other metadata '
|
||||||
'profiles (even if private), from your feed or from all followees of a given '
|
'from Instagram.',
|
||||||
'profile.',
|
|
||||||
long_description=open('README.rst').read(),
|
long_description=open('README.rst').read(),
|
||||||
install_requires=['requests>=2.4'],
|
install_requires=['requests>=2.4'],
|
||||||
python_requires='>=3.5',
|
python_requires='>=3.5',
|
||||||
|
|||||||
Reference in New Issue
Block a user