/Social-Picker-API

Extract media from various posting platfroms like Twitter, Reddit, Pixiv, Youtube, Osnova and many others

Primary LanguageJavaScriptBoost Software License 1.0BSL-1.0

Social-Picker-API

This project is used to extract media from various posting platforms like Twitter, Reddit, Pixiv, Youtube and many others. It's written for Node.js and it works as local service for other local services, e.g. Anime Ultra Bot or Social Picker Vue.

Usage: give a link to the post and receive its content.

Configs

There are some configuration files:

Development config files can be created and placed along production ones (e.g. tokens.dev.json). You can also install all npm modules (including dev) one with npm install. npm run dev will run service in dev-environment, npm run lint will use eslint.

How to run

  1. Install necessary dependencies – npm i --production
  2. Run production server – npm run production

After launching you can access Picker with fetching it like curl http://localhost:8080/?url=__LINK_TO_ANY_POST__ (change 8080 to real port you specified in service.json). If you're planning opening your Picker instance to the world, I'd suggest creating your own middleware service for handling user access, downloading combined videos (something like that)

List of platforms

  • Twitter – images, videos and gifs
  • Twitter's direct media – from *.twimg.com
  • Nitter – Twitter clone
  • Instagram – images, videos and galleries
  • Pixiv – images and Ugoira-gifs. Uses external service for end-user viewing of high-res images due to Referer Header issues. Uses ugoira-builder for creating mp4 video from Ugoira zip (via ffmpeg)
  • Pixiv's direct images – from *.pximg.net
  • Reddit – images, videos, gifs and galleries. Uses video-audio-merge for merging separate streams (via ffmpeg)
  • Youtube – video with response in default type containing all streams (via yt-dlp)
  • Osnova – images, videos, gifs and galleries. Also extracts Twitter and Instagram blocks/links from within and handles them with parsers above
  • Tumblr – images and galleries
  • Danbooru – images
  • Gelbooru – images
  • Konachan – images
  • Yandere – images
  • Eshuushuu – images
  • Sankaku – images
  • Zerochan – images
  • AnimePictures – images
  • KemonoParty – images
  • Joyreactor – images and gifs from [joy/safe/anime./etc…]reactor.сс including m. subdomains and direct links to media files
  • Coub – looped videos with linear audio. Uses video-audio-merge for merging separate streams (via ffmpeg)

Some links