예제 #1
0
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)
예제 #2
0
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")
예제 #4
0
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")