from itertools import islice from math import ceil from instaloader import Instaloader, Profile PROFILE = ... # profile to download from X_percentage = 10 # percentage of posts that should be downloaded L = Instaloader() profile = Profile.from_username(L.context, PROFILE) posts_sorted_by_likes = sorted(profile.get_posts(), key = lambda p: p.likes + p.comments) for post in islice(posts_sorted_by_likes, ceil(profile.mediacount * X_percentage / 100)): L.download_post(post, PROFILE)