def main(): # アカウント情報をロード with open('account_info.json', 'r') as f: data = json.load(f) username = data['username'] password = data['password'] # create directories dirs = [PHOTO_DIR, VIDEO_DIR] for d in dirs: if not os.path.exists(d): os.makedirs(d) # URLリストをロード urls_file = os.path.join(ROOT_DATA_DIR, '_urls.txt') url_list = [] with open(urls_file, 'r') as f: for i in f: url_list.append(i.rstrip('\n')) # Login bot = Bot(base_path=LOG_DIR) bot.login(username=username, password=password) # download files for url in url_list: # get like medias from your timeline feed try: media_id = bot.get_media_id_from_link(url) except: continue # get media info info = bot.get_media_info(media_id)[0] # download dummy_file = str(media_id) if info['media_type'] == 1: # photo bot.download_photo(media_id, filename=dummy_file, folder=PHOTO_DIR) elif info['media_type'] == 2: # video bot.download_video(media_id, filename=dummy_file, folder=VIDEO_DIR) # delete directories which have no data dirs = [PHOTO_DIR, VIDEO_DIR] for d in dirs: if not os.listdir(d): os.rmdir(d)
def main(username, password, profile): workdir = 'ig_%s' % profile try: os.makedirs(workdir) except FileExistsError: pass medias = [] bot = Bot() profile = clean_username(profile) bot.login(username=username, password=password) mids = bot.get_total_user_medias(profile) for mid in mids: media = bot.get_media_info(mid).pop() medias.append(media) media_type = media.get('media_type') if media_type == 1: bot.download_photo(mid, folder=os.path.join(workdir, 'photos'), save_description=True) elif media_type == 2: bot.download_video(mid, folder=os.path.join(workdir, 'videos'), save_description=True) open(os.path.join(workdir, 'dump.json'), 'w').write(json.dumps(medias)) return True
import random import argparse from instabot import Bot parser = argparse.ArgumentParser(add_help=True) parser.add_argument('-u', type=str, help="username") parser.add_argument('-p', type=str, help="password") parser.add_argument('-proxy', type=str, help="proxy") parser.add_argument('-user', type=str, help="user") args = parser.parse_args() # in case if you just downloaded zip with sources sys.path.append(os.path.join(sys.path[0], '../../')) bot = Bot() bot.login(username=args.u, password=args.p, proxy=args.proxy) user_id = bot.get_user_id_from_username(args.user) user_medias = bot.get_user_medias(user_id, filtration=None) for media_id in user_medias: bot.api.media_info(media_id) json = bot.api.last_json media_type = json["items"][0]["media_type"] if media_type == 2: print("Downloading Video") bot.download_video(media_id, folder='videos') else: print("Not a video")
import os import sys import argparse from instabot import Bot parser = argparse.ArgumentParser(add_help=True) parser.add_argument("-u", type=str, help="username") parser.add_argument("-p", type=str, help="password") parser.add_argument("-proxy", type=str, help="proxy") parser.add_argument("-user", type=str, help="user") args = parser.parse_args() # in case if you just downloaded zip with sources sys.path.append(os.path.join(sys.path[0], "../../")) bot = Bot() bot.login(username=args.u, password=args.p, proxy=args.proxy) user_id = bot.get_user_id_from_username(args.user) user_medias = bot.get_user_medias(user_id, filtration=None) for media_id in user_medias: bot.api.media_info(media_id) json = bot.api.last_json media_type = json["items"][0]["media_type"] if media_type == 2: print("Downloading Video") bot.download_video(media_id, folder="videos") else: print("Not a video")