{"id":23638035,"url":"https://github.com/scrazzz/redgifs","last_synced_at":"2025-04-12T21:25:19.315Z","repository":{"id":40426873,"uuid":"465347997","full_name":"scrazzz/redgifs","owner":"scrazzz","description":"Simple Python API wrapper for the RedGIFs API","archived":false,"fork":false,"pushed_at":"2025-04-01T00:44:24.000Z","size":728,"stargazers_count":110,"open_issues_count":1,"forks_count":14,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-04T01:08:59.380Z","etag":null,"topics":["aiohttp","async","asyncio","cli","cli-downloader","easy-to-use","nsfw","python","python3","redgifs","redgifs-downloader","requests","sync"],"latest_commit_sha":null,"homepage":"https://redgifs.rtfd.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/scrazzz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-03-02T14:50:42.000Z","updated_at":"2025-04-01T00:44:28.000Z","dependencies_parsed_at":"2022-07-12T18:02:10.639Z","dependency_job_id":"6750f294-f630-4f0f-9a15-4790fa7d42e5","html_url":"https://github.com/scrazzz/redgifs","commit_stats":{"total_commits":130,"total_committers":5,"mean_commits":26.0,"dds":"0.42307692307692313","last_synced_commit":"7c0094aaa9d5378c60061784e2e63aaa58e5e5f9"},"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scrazzz%2Fredgifs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scrazzz%2Fredgifs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scrazzz%2Fredgifs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scrazzz%2Fredgifs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scrazzz","download_url":"https://codeload.github.com/scrazzz/redgifs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248633271,"owners_count":21136845,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aiohttp","async","asyncio","cli","cli-downloader","easy-to-use","nsfw","python","python3","redgifs","redgifs-downloader","requests","sync"],"created_at":"2024-12-28T07:21:52.583Z","updated_at":"2025-04-12T21:25:19.287Z","avatar_url":"https://github.com/scrazzz.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e \u003ccode\u003eredgifs\u003c/code\u003e \u003c/h1\u003e\n\n\u003cdiv align=\"center\"\u003e\n    \u003ca href=\"https://pypi.org/project/redgifs\"\u003e\n        \u003cimg src=\"https://img.shields.io/pypi/v/redgifs.svg\" alt=\"pypi\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/scrazzz/redgifs/actions/workflows/test.yml\"\u003e\n        \u003cimg src=\"https://github.com/scrazzz/redgifs/actions/workflows/test.yml/badge.svg\" alt=\"pytest\"\u003e\n    \u003c/a\u003e\n    \u003ca href='https://redgifs.readthedocs.io/en/latest/?badge=latest'\u003e\n        \u003cimg src='https://readthedocs.org/projects/redgifs/badge/?version=latest' alt='Documentation Status' /\u003e\n    \u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003e Async and Sync Python Wrapper for the RedGIFs API. \u003c/p\u003e\n\n-----\n\n\u003e ⭐ _Please star this repo to support the developer and to encourage the development of this project!_\n\n-----\n\n### Installation\n```\npip install -U redgifs\n```\n\n\u003e [!IMPORTANT]\n\u003e - It is advised to install the [Development version](####development-version)  because v2.0 has a lot of bugs\n\u003e - A new v2.1 version will be released soon with major breaking changes\n\n#### Development version\n```\npip install -U git+https://github.com/scrazzz/redgifs\n```\n\n`redgifs` works on Python versions 3.8 and above.\n\n-----\n\n### Quickstart\n#### 1. Command Line:\n\n```console\n$ redgifs --help\nUsage: redgifs [OPTIONS] [URLS]...\n\nOptions:\n  -v, --version             Shows currently installed version.\n  -q, --quality [sd|hd]     Video quality of GIF to download.  [default: hd]\n  -f, --folder FOLDER_NAME  The folder to save the downloads to.\n  -i, --input FILE_NAME     Download URLs from a newline seperated txt file.\n  --images                  Download only images from a user profile.\n  --help                    Show this message and exit.\n```\n\nExamples:\n```console\n$ # Download files to a folder\n$ ls\nHome    Downloads  Homework  Music\nBackup  Documents  Videos    Games\n$ redgifs https://redgifs.com/watch/xyz --quality sd --folder Homework\nDownloading xyz...\nDownload complete\n$ ls Homework\nxyz.mp4\n```\n\n```console\n$ # Download GIFs from a file that contains a list of URLs\n$\n$ # urls.txt:\n$ # https://redigfs.com/watch/xyz\n$ # https://redigfs.com/watch/qwe\n$ # https://redigfs.com/watch/abc\n$ # https://redigfs.com/watch/rst\n\n$ redgifs -i urls.txt\nDownloading xyz...\nDownload complete\nDownloading qwe...\n```\n\n```console\n$ # Download all GIFs from a user's profile\n$ mkdir rg_vids\n$ redgifs https://redgifs.com/users/usernamethatexists -f rg_vids\nDownloaded 1/3 GIFs\nDownloaded 2/3 GIFs\nDownloaded 3/3 GIFs\n...\nDownloaded 3/3 videos of user usernamethatexists to folder rg_vids sucessfully!\n```\n\n#### 2. Synchronous usage:\n```py\nimport redgifs\n\napi = redgifs.API()\napi.login() # Login with temporary token\nresponse = api.search('3D')\nprint(response)\napi.close()\n```\n\n#### 3. Asynchronous usage:\n```py\nimport asyncio\nfrom redgifs.aio import API # note this\n\nasync def main():\n    api = API()\n    await api.login() # Login with temporary token\n    response = await api.search('3D')\n    print(response)\n    await api.close()\n\nloop = asyncio.get_event_loop()\nloop.run_until_complete(main())\n```\n\nMore examples can be found in the examples directory.\n\n-----\n\n### Links\n- [Documentation](https://redgifs.readthedocs.io)\n- [Discord](https://discord.gg/NtAJMCcTd4)\n- [Examples](https://github.com/scrazzz/redgifs/tree/main/examples)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscrazzz%2Fredgifs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscrazzz%2Fredgifs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscrazzz%2Fredgifs/lists"}