Рубрики
Без рубрики

Создание IG Top 9 без использования жутких сторонних приложений

Как я создал свой Instagram Top9 с небольшим сценарием Python вместо этих жутких сторонних приложений. Tagged с Instagram, Top9, Python, Showdev.

Это снова время года, когда все в Instagram публикуют свой #Top9. Я тоже хотел одного, но я не доверяю тому, какому приложению люди подлинны своими учетными записями в Instagram, потому что оно разделяет больше с третьей стороной, чем я хочу сделать. (TL; DR: используйте скрипт в This Gist )

К счастью, быстрый гугл привел меня к IGRAMSCRARAPER Библиотека Python

Затем первым шагом было использование его get_medias Функция:

posts = instagram.get_medias("_schep", 50) # use your account of course!

Затем нам нужно отфильтровать только на фотографии этого года и сортировать по лайках и взять ведущую 9. Для этого мы используем стандартную библиотеку DateTime Модуль, понимание списка, отсортировано и ломтик, чтобы ограничить результат до 9.

this_year_photos = [
    post
    for post in posts
    if datetime.fromtimestamp(post.created_time).year == 2019
    and post.type == post.TYPE_IMAGE
]

top9 = sorted(this_year_photos, key=lambda post: -post.likes_count)[:9]

Теперь у нас есть список ваших 9 самых любимых фотографий 2019 года! Затем нам нужно загрузить их и создать ваше изображение Top9. Для этого мы используем популярное Запросы и Подушка Библиотеки:

img = Image.new("RGB", (1080, 1080)) # create the new image
for post in top9:
    # download and open the image
    tile = Image.open(requests.get(post.image_high_resolution_url, stream=True).raw)
    # resize the image
    tile = tile.resize((360, 360), Image.ANTIALIAS)
    # paste it into our new image
    img.paste(tile, (i % 3 * 360, i // 3 * 360))

Призыв к img.paste немного тупо. Я использую оператора Modulo ( % ), чтобы определить, в каком столбце находится изображение, а затем умножение на размер изображения и используя оператор деления пола ( // ) для определения строки.

Тогда мы сохраняем это!

img.save("my-top9.jpg")

Если у вас есть не квадратные изображения в вашей лучшей 9, вы можете заметить, что они деформированы. Чтобы справиться с этим, мы обрезаем нашу плитку перед тем, как изменить ее:

if tile.size[0] > tile.size[1]:
    tile = tile.crop(
        (
            (tile.size[0] - tile.size[1]) / 2,
            0,
            (tile.size[0] - tile.size[1]) / 2 + tile.size[1],
            tile.size[1],
        )
    )
elif tile.size[0] < tile.size[1]:
    tile = tile.crop(
        (
            0,
            (tile.size[1] - tile.size[0]) / 2,
            tile.size[0],
            (tile.size[1] - tile.size[0]) / 2 + tile.size[0],
        )
    )

🎉 Мы только что создали наше собственное изображение Top 9 без необходимости аутентификации вашей учетной записи с помощью 3 -го приложения IG Creep!

Проверьте полный исходный код для простой в использовании версии этого сценария в этой сути:

Оригинал: “https://dev.to/dschep/creating-an-ig-top-9-without-using-creepy-3rd-party-apps-4ga8”