Skip to content

scrazzz/redgifs

Repository files navigation

redgifs

Async and Sync Python Wrapper for the RedGIFs API.


Please star this repo to support the developer and to encourage the development of this project!


Installation

pip install -U redgifs

Development version

pip install -U git+https://github.com/scrazzz/redgifs

redgifs works on Python versions 3.8 and above.


Quickstart

1. Command Line:

$ redgifs --help
Usage: redgifs [OPTIONS] [URLS]...

Options:
  -v, --version             Shows currently installed version.
  -q, --quality [sd|hd]     Video quality of GIF to download.  [default: hd]
  -f, --folder FOLDER_NAME  The folder to save the downloads to.
  -i, --input FILE_NAME     Download URLs from a newline seperated txt file.
  --images                  Download only images from a user profile.
  --help                    Show this message and exit.

Examples:

Download multiple GIFs
$ redgifs https://redgifs.com/watch/abc https://redgifs.com/watch/xyz https://redgifs.com/watch/def
Downloading abc...
Download complete

Downloading xyz...
Download complete

Downloading def...
Download complete
Download GIFs to a specific folder
$ ls
Home    Downloads  Homework  Music
Backup  Documents  Videos    Games
$ redgifs https://redgifs.com/watch/xyz --quality sd --folder Homework
Downloading xyz...
Download complete
$ ls Homework
xyz.mp4
Download GIFs from a text file that contains a list of URLs
$ # urls.txt:
$ # https://redigfs.com/watch/xyz
$ # https://redigfs.com/watch/qwe
$ # https://redigfs.com/watch/abc
$ # https://redigfs.com/watch/rst

$ redgifs -i urls.txt
Downloading xyz...
Download complete
Downloading qwe...
Download all GIFs from a user's profile
$ mkdir rg_vids
$ redgifs https://redgifs.com/users/usernamethatexists -f rg_vids
Downloaded 1/3 GIFs
Downloaded 2/3 GIFs
...
Downloaded 3/3 videos of user usernamethatexists to folder rg_vids sucessfully!

2. Synchronous usage:

import redgifs

api = redgifs.API()
api.login() # Login with temporary token
response = api.search('3D')
print(response)
api.close()

3. Asynchronous usage:

import asyncio
from redgifs.aio import API # note this

async def main():
    api = API()
    await api.login() # Login with temporary token
    response = await api.search('3D')
    print(response)
    await api.close()

loop = asyncio.get_event_loop()
loop.run_until_complete(main())

More examples can be found in the examples directory.


Links