@said-m/instagram-cli v0.3.2
@said-m/instagram-cli
Модуль и CLI для вытягивания данных публикаций в Instagram без запросов к настоящей API-хе и авторизации.
Установка / 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 -mor (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 -iNPM-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 -pModule
Интерфейс возвращаемого объекта: PostInterface.
import { getPost } from '@said-m/instagram-cli';
getPost(postKey).then(postData => {
if (!postData) {
console.error('Не удалось');
}
postData./* ... */;
});Медиа-файлы публикации / Media-files
CLI
Будет создана папка со всеми медиа-файлами публикации (изображения и видео).
instagram-cli $POST_KEY -mModule
Интерфейс возвращаемого объекта: 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.