All Projects β†’ ping β†’ Instagram_private_api_extensions

ping / Instagram_private_api_extensions

Licence: mit
An extension module to https://github.com/ping/instagram_private_api

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Instagram private api extensions

Instagramapisharp
A complete Private Instagram API for .NET (C#, VB.NET).
Stars: ✭ 486 (+401.03%)
Mutual labels:  instagram-api, instagram
Instagram4j
πŸ“· Instagram private API in Java
Stars: ✭ 629 (+548.45%)
Mutual labels:  instagram-api, instagram
Instapy Cli
✨ Python library and CLI to upload photo and video on Instagram. W/o a phone!
Stars: ✭ 498 (+413.4%)
Mutual labels:  instagram-api, instagram
Jinstagram
A Java library for the Instagram API.
Stars: ✭ 382 (+293.81%)
Mutual labels:  instagram-api, instagram
Instagram Api Toolkit
Instagram Private API generator toolkit - A single source of truth for generated SDKs
Stars: ✭ 48 (-50.52%)
Mutual labels:  instagram-api, instagram
Instasharper
Private Instagram API
Stars: ✭ 426 (+339.18%)
Mutual labels:  instagram-api, instagram
Swiftinstagram
Instagram API client written in Swift
Stars: ✭ 570 (+487.63%)
Mutual labels:  instagram-api, instagram
Osintgram
Osintgram is a OSINT tool on Instagram. It offers an interactive shell to perform analysis on Instagram account of any users by its nickname
Stars: ✭ 312 (+221.65%)
Mutual labels:  instagram-api, instagram
Gatsby Source Instagram All
βš›οΈπŸ“Έ Gatsby source plugin for fetching all your instagram posts
Stars: ✭ 42 (-56.7%)
Mutual labels:  instagram-api, instagram
Goinsta
Unofficial Instagram API written in Golang
Stars: ✭ 733 (+655.67%)
Mutual labels:  instagram-api, instagram
Instagramlive Php
A PHP script that allows for you to go live on Instagram with any streaming program that supports RTMP!
Stars: ✭ 362 (+273.2%)
Mutual labels:  instagram-api, instagram
Igql
Unofficial Instagram GraphQL API to collet data without authentication
Stars: ✭ 80 (-17.53%)
Mutual labels:  instagram-api, instagram
Instagram Java Scraper
Instagram Java Scraper. Get account information, photos, videos and comments.
Stars: ✭ 335 (+245.36%)
Mutual labels:  instagram-api, instagram
Instagram User Feed
This is a scrapper to easily fetch any feed and interact with Instagram (like, follow, etc.) without OAuth for PHP.
Stars: ✭ 435 (+348.45%)
Mutual labels:  instagram-api, instagram
Instafeed.js
A simple Instagram JavaScript plugin for your website
Stars: ✭ 3,376 (+3380.41%)
Mutual labels:  instagram-api, instagram
Instagram Scraper
Scrapes an instagram user's photos and videos
Stars: ✭ 5,664 (+5739.18%)
Mutual labels:  instagram-api, instagram
Instamancer
Scrape Instagram's API with Puppeteer
Stars: ✭ 273 (+181.44%)
Mutual labels:  instagram-api, instagram
Ig Monitoring
🚨 DISCONTINUED🚨 IGMonitoring - Free, self hosted Instagram Analytics and Stats
Stars: ✭ 283 (+191.75%)
Mutual labels:  instagram-api, instagram
Socialmanagertools Igbot
πŸ€– πŸ“· Instagram Bot made with love and nodejs
Stars: ✭ 699 (+620.62%)
Mutual labels:  instagram-api, instagram
Personal Influxdb
Import data from various APIs into InfluxDB
Stars: ✭ 51 (-47.42%)
Mutual labels:  instagram-api, instagram

Instagram Private API Extensions

An extension module to instagram_private_api to help with common tasks such as posting a photo or video.

Release Docs Build Coverage

Features

  1. media: Edits a photo/video so that it complies with Instagram's requirements by:

    • Resizing
    • Cropping to fit the minimum/maximum aspect ratio
    • Generating the video thumbnail image
    • Clipping the video duration if it is too long
    • Changing the format/encoding
  2. pagination: Page through an api call such as api.user_feed().

  3. live: Download an ongoing IG live stream. Requires ffmpeg installed.

  4. replay: Download an IG live replay stream. Requires ffmpeg installed.

Documentation

Documentation is available at https://instagram-private-api-extensions.readthedocs.io/en/latest/

Install

Install with pip using

pip install git+https://[email protected]/ping/[email protected]

To update:

pip install git+https://[email protected]/ping/[email protected] --upgrade

To update with latest repo code:

pip install git+https://[email protected]/ping/instagram_private_api_extensions.git --upgrade --force-reinstall

Usage

Media

from instagram_private_api import Client, MediaRatios
from instagram_private_api_extensions import media

api = Client('username', 'password')

# post a photo
photo_data, photo_size = media.prepare_image(
    'pathto/my_photo.jpg', aspect_ratios=MediaRatios.standard)
api.post_photo(photo_data, photo_size, caption='Hello World!')

# post a video
vid_data, vid_size, vid_duration, vid_thumbnail = media.prepare_video(
    'pathto/my_video.mp4', aspect_ratios=MediaRatios.standard)
api.post_video(vid_data, vid_size, vid_duration, vid_thumbnail)

# post a photo story
photo_data, photo_size = media.prepare_image(
    'pathto/my_photo.jpg', aspect_ratios=MediaRatios.reel)
api.post_photo_story(photo_data, photo_size)

# post a video story
vid_data, vid_size, vid_duration, vid_thumbnail = media.prepare_video(
    'pathto/my_video.mp4', aspect_ratios=MediaRatios.reel)
api.post_video_story(vid_data, vid_size, vid_duration, vid_thumbnail)

# post a video without reading the whole file into memory
vid_saved_path, vid_size, vid_duration, vid_thumbnail = media.prepare_video(
    'pathto/my_video.mp4', aspect_ratios=MediaRatios.standard,
    save_path='pathto/my_saved_video.mp4', save_only=True)
# To use save_only, the file must be saved locally
# by specifying the save_path
with open(vid_saved_path, 'rb') as video_fp:
    api.post_video(video_fp, vid_size, vid_duration, vid_thumbnail)

Pagination

from instagram_private_api_extensions import pagination

# page through a feed
items = []
for results in pagination.page(api.user_feed, args={'user_id': '123456'}):
    if results.get('items'):
        items.extend(results['items'])
print(len(items))

Live

from instagram_private_api_extensions import live

broadcast = api.broadcast_info('1234567890')

dl = live.Downloader(
    mpd=broadcast['dash_playback_url'],
    output_dir='output_{}/'.format(broadcast['id']),
    user_agent=api.user_agent)
try:
    dl.run()
except KeyboardInterrupt:
    if not dl.is_aborted:
        dl.stop()
finally:
    # combine the downloaded files
    # Requires ffmpeg installed. If you prefer to use avconv
    # for example, omit this step and do it manually
    dl.stitch('my_video.mp4')

Replay

from instagram_private_api_extensions import replay

user_story_feed = api.user_story_feed('12345')

broadcasts = user_story_feed.get('post_live_item', {}).get('broadcasts', [])
for broadcast in broadcasts:
    dl = replay.Downloader(
        mpd=broadcast['dash_manifest'],
        output_dir='output_{}/'.format(broadcast['id']),
        user_agent=api.user_agent)
    # download and save to file
    dl.download('output_{}.mp4'.format(broadcast['id']))

Support

Make sure to review the contributing documentation before submitting an issue report or pull request.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].