Skip to content
This repository has been archived by the owner on Nov 23, 2021. It is now read-only.
/ instagram-cli Public archive

CLI tool for getting data from Instagram without API tokens

License

Notifications You must be signed in to change notification settings

said-m/instagram-cli

Repository files navigation

@said-m/instagram-cli

Модуль и CLI для вытягивания данных публикаций в Instagram без запросов к настоящей API-хе и авторизации.

npm version Build Status

Установка / Installing

CLI

npm install -g @said-m/instagram-cli

Можно протестировать и без установки, см. Использование;
You can test it without installation, see Usage.

NPM-module

yarn add @said-m/instagram-cli

Использование / Usage

CLI

instagram-cli $POST_KEY -p -m

or (w/o installation):

npx @said-m/instagram-cli $POST_KEY -p -m

где $POST_KEY ищем в URI публикации так: instagram.com/p/$POST_KEY

Список доступных команд и их предназначение: Методы
About flags, see Methods

Интерактивный режим / Interactive

В данном режиме, скрипт будет поэтапно запрашивать данные в форме диалога.

instagram-cli $POST_KEY -i

NPM-module

import { getPost } from '@said-m/instagram-cli';

const postKey: string = /* ... */;

const app = async () => {
  try {
    const postData = await getPost(postKey);

    // Работа с результатом - `postData`.
  } catch {
    // Обработка ошибки
  }
}

app();

Интерфейс: key => Promise<PostInterface | undefined>.

Методы / Methods

Список всех доступных флагов можно просмотреть в меню помощи:

instagram-cli -h

Данные публикации / Post's data

Возвращает json-объект с основной информацией о файле.

CLI

Будет создан json-файл с указанным содержимым.

instagram-cli $POST_KEY -p

Module

Интерфейс возвращаемого объекта: PostInterface.

import { getPost } from '@said-m/instagram-cli';

getPost(postKey).then(postData => {
  if (!postData) {
    console.error('Не удалось');
  }

  postData./* ... */;
});

Медиа-файлы публикации / Media-files

CLI

Будет создана папка со всеми медиа-файлами публикации (изображения и видео).

instagram-cli $POST_KEY -m

Module

Интерфейс возвращаемого объекта: GetMediaOutputInterface.

  • byShortcode(name: string) => Promise<GetMediaOutputInterface>
    import { GetMedia } from '@said-m/instagram-cli';
    
    const getMedia = new GetMedia();
    const postKey:string = /* ... */;
    
    getMedia.byShortcode(postKey).then(media => {
      // Не удалось получить данные медиа
      if (!media) return;
    
      // Публикации могут содержиать несколько медиа
      media.forEach((thisMedia, thisMediaIndex) => {
        // Если не удалось получить файл
        if (!thisMedia) return;
    
        // Записываем в файл
        const fileName = thisMediaIndex + '.' + thisMedia.extension;
        thisMedia.stream.pipe(createWriteStream(fileName));
      });
    });
  • byPostData(value: PostInterface) => GetMediaOutputInterface
    Если данные поста уже загружены, то используем их, чтобы сэкономить трафик:
    // ...
    
    getPost(postKey).then(postData => {
      if (!postData) return;
    
      // Запрашиваем медиа по имеющимся данным публикации
      const media = getMedia.byPostData(postData);
    
      if (!media) return;
    
      media.forEach(/* ... */);
    });

Лицензия / License

Данный проект распространяется по MIT License.