Originally created by: supreme-gg-gg
Instagram provides systematic API to construct and upload stories (e.g. add link, add emoji, add text...). For post and reel upload, simply providing media + caption + hashtag / metadata would be adequate. Implementing these features would not be difficult for either of our client.
New commands: instagram stories and instagram posts
There are two approaches that we can take here:
TUI approach, somewhat similar to the feed UI and more similar to web UI
Command-line approach, the user specify a post / story as "resources" (think Kubernetes) and do something like kubectl apply -f pod.yaml but instead instagram apply -f story.yaml, where in YAML:
:::yaml
apiVersion: instagram/v1
kind: Story
metadata:
name: had-a-nice-night-out
spec:
source:
type: image
path: my_post.png
caption:
...
emoji:
...
Of course, this is not meant to be very complicated like in Kubernetes so don't worry 😄 we're just using it for a rough analogy here. this makes development slightly easier since working with complex interactive UI in terminal is harder than parsing config files 😭
This issue aims to triage the community interest in an all-in-one solution for uploading media to Instagram. If you believe that this feature would be helpful, please either comment or upvote.
Related: [#119]
Originally posted by: endernoke
I strongly support this. In my opinion this would be one of the most unique and differentiating features we have over all the other official/unofficial instagram clients. @supreme-gg-gg you are the goat bro 🫡
In particular for stories, Instagram provides a lot of options for composing/customizing your story (e.g. layouts, text overlay styles, tags etc.) I need to spend up to 5 minutes to choose all the elements I want to have in the app UI. Having a yaml spec would really simplify this process.
Originally posted by: supreme-gg-gg
This is the python option: https://github.com/subzeroid/instagrapi/blob/master/instagrapi/story.py#L65
EDIT: I believe python version does a much better job here, the typescript version has very limited fields:
From what I've seen, it does NOT do preprocessing on the image, i.e. it only construct these fields into the body and sends to the endpoint. However, the Python client uses
pymovieor other media handling libraries + utils to preprocess these first in some cases?