How to use the instaloader.Instaloader function in instaloader

To help you get started, we’ve selected a few instaloader examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github instaloader / instaloader / test / instaloader_unittests.py View on Github external
def setUp(self):
        self.dir = tempfile.mkdtemp()
        print("Testing in {}".format(self.dir))
        os.chdir(self.dir)
        self.L = instaloader.Instaloader(download_geotags=True,
                                         download_comments=True,
                                         save_metadata=True)
        self.L.context.raise_all_errors = True
        # pylint:disable=protected-access
        self.L.context._graphql_query_timestamps = instaloadercontext_query_timestamps.copy()
github instaloader / instaloader / instaloader / __main__.py View on Github external
else:
                raise SystemExit("--no-captions and --post-metadata-txt or --storyitem-metadata-txt given; "
                                 "That contradicts.")

        if args.no_pictures and args.fast_update:
            raise SystemExit('--no-pictures and --fast-update cannot be used together.')

        # Determine what to download
        download_profile_pic = not args.no_profile_pic or args.profile_pic_only
        download_posts = not (args.no_posts or args.stories_only or args.profile_pic_only)
        download_stories = args.stories or args.stories_only

        if args.commit_mode and args.no_metadata_json:
            raise SystemExit('--commit-mode requires JSON metadata to be saved.')

        loader = Instaloader(sleep=not args.no_sleep, quiet=args.quiet, user_agent=args.user_agent,
                             dirname_pattern=args.dirname_pattern, filename_pattern=args.filename_pattern,
                             download_pictures=not args.no_pictures,
                             download_videos=not args.no_videos, download_video_thumbnails=not args.no_video_thumbnails,
                             download_geotags=args.geotags,
                             download_comments=args.comments, save_metadata=not args.no_metadata_json,
                             compress_json=not args.no_compress_json,
                             post_metadata_txt_pattern=post_metadata_txt_pattern,
                             storyitem_metadata_txt_pattern=storyitem_metadata_txt_pattern,
                             max_connection_attempts=args.max_connection_attempts,
                             request_timeout=args.request_timeout,
                             commit_mode=args.commit_mode)
        _main(loader,
              args.profile,
              username=args.login.lower() if args.login is not None else None,
              password=args.password,
              sessionfile=args.sessionfile,
github instaloader / instaloader / docs / codesnippets / 615_import_firefox_session.py View on Github external
def import_session(cookiefile, sessionfile):
    print("Using cookies from {}.".format(cookiefile))
    conn = connect(cookiefile)
    try:
        cookie_data = conn.execute(
            "SELECT name, value FROM moz_cookies WHERE baseDomain='instagram.com'"
        )
    except OperationalError:
        cookie_data = conn.execute(
            "SELECT name, value FROM moz_cookies WHERE host LIKE '%instagram.com'"
        )
    instaloader = Instaloader(max_connection_attempts=1)
    instaloader.context._session.cookies.update(cookie_data)
    username = instaloader.test_login()
    if not username:
        raise SystemExit("Not logged in. Are you logged in successfully in Firefox?")
    print("Imported session cookie for {}.".format(username))
    instaloader.context.username = username
    instaloader.save_session_to_file(sessionfile)
github instaloader / instaloader / instaloader.py View on Github external
download_videos = Tristate.always if not args.no_videos else Tristate.no_extra_query
        download_video_thumbnails = Tristate.always if not args.no_video_thumbnails else Tristate.never
        download_comments = Tristate.always if args.comments else Tristate.no_extra_query
        save_captions = Tristate.no_extra_query if not args.no_captions else Tristate.never
        save_metadata = Tristate.always if args.metadata_json else Tristate.never

        if args.geotags and args.no_geotags:
            raise SystemExit("--geotags and --no-geotags given. I am confused and refuse to work.")
        elif args.geotags:
            download_geotags = Tristate.always
        elif args.no_geotags:
            download_geotags = Tristate.never
        else:
            download_geotags = Tristate.no_extra_query

        loader = Instaloader(sleep=not args.no_sleep, quiet=args.quiet,
                             user_agent=args.user_agent,
                             dirname_pattern=args.dirname_pattern, filename_pattern=args.filename_pattern,
                             download_videos=download_videos, download_video_thumbnails=download_video_thumbnails,
                             download_geotags=download_geotags,
                             save_captions=save_captions, download_comments=download_comments,
                             save_metadata=save_metadata, max_connection_attempts=args.max_connection_attempts)
        loader.main(args.profile,
                    username=args.login.lower() if args.login is not None else None,
                    password=args.password,
                    sessionfile=args.sessionfile,
                    max_count=int(args.count) if args.count is not None else None,
                    profile_pic=not args.no_profile_pic,
                    profile_pic_only=args.profile_pic_only,
                    fast_update=args.fast_update,
                    stories=args.stories,
                    stories_only=args.stories_only,
github instaloader / instaloader / docs / codesnippets / 113_only_one_per_user.py View on Github external
import instaloader

L = instaloader.Instaloader()

posts = instaloader.Hashtag.from_name(L.context, 'urbanphotography').get_posts()

users = set()

for post in posts:
    if not post.owner_profile in users:
        L.download_post(post, '#urbanphotography')
        users.add(post.owner_profile)
    else:
        print("{} from {} skipped.".format(post, post.owner_profile))
github instaloader / instaloader / instaloader.py View on Github external
def anonymous_copy(self):
        """Yield an anonymous, otherwise equally-configured copy of an Instaloader instance; Then copy its error log."""
        new_loader = Instaloader(self.sleep, self.quiet, self.user_agent,
                                 self.dirname_pattern, self.filename_pattern,
                                 self.download_videos,
                                 self.download_video_thumbnails,
                                 self.download_geotags,
                                 self.save_captions, self.download_comments,
                                 self.save_metadata, self.max_connection_attempts)
        new_loader.query_timestamps = self.query_timestamps
        yield new_loader
        self.error_log.extend(new_loader.error_log)
        self.query_timestamps = new_loader.query_timestamps
github instaloader / instaloader / docs / codesnippets / 121_since_until.py View on Github external
from datetime import datetime
from itertools import dropwhile, takewhile

import instaloader

L = instaloader.Instaloader()

posts = instaloader.Profile.from_username(L.context, "instagram").get_posts()

SINCE = datetime(2015, 5, 1)
UNTIL = datetime(2015, 3, 1)

for post in takewhile(lambda p: p.date > UNTIL, dropwhile(lambda p: p.date > SINCE, posts)):
    print(post.date)
    L.download_post(post, "instagram")