{"id":21140729,"url":"https://github.com/jackhammer9/reddownloader","last_synced_at":"2025-07-29T02:31:19.766Z","repository":{"id":38007565,"uuid":"415407813","full_name":"Jackhammer9/RedDownloader","owner":"Jackhammer9","description":"A python library to simplify downloading different types of media from reddit","archived":false,"fork":false,"pushed_at":"2024-03-12T11:28:43.000Z","size":639,"stargazers_count":85,"open_issues_count":2,"forks_count":16,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-11-20T04:14:51.314Z","etag":null,"topics":["audio-download","download","downloader","downloader-for-reddit","gallery","imagedownload","library","media","media-downloader","pictures","python","reddit","reddit-api","reddit-bot","reddit-media-downloader","redvid","videos"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Jackhammer9.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}},"created_at":"2021-10-09T19:50:36.000Z","updated_at":"2024-11-20T00:26:49.000Z","dependencies_parsed_at":"2024-03-10T09:34:06.446Z","dependency_job_id":"e86a1461-0b74-49e4-b223-e4ae851c3379","html_url":"https://github.com/Jackhammer9/RedDownloader","commit_stats":null,"previous_names":["jackhammeryt/redviddownloader","jackhammeryt/reddownloader"],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jackhammer9%2FRedDownloader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jackhammer9%2FRedDownloader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jackhammer9%2FRedDownloader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jackhammer9%2FRedDownloader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Jackhammer9","download_url":"https://codeload.github.com/Jackhammer9/RedDownloader/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227774019,"owners_count":17817960,"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":["audio-download","download","downloader","downloader-for-reddit","gallery","imagedownload","library","media","media-downloader","pictures","python","reddit","reddit-api","reddit-bot","reddit-media-downloader","redvid","videos"],"created_at":"2024-11-20T07:17:33.306Z","updated_at":"2024-12-02T17:43:52.654Z","avatar_url":"https://github.com/Jackhammer9.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n    \n\u003cimg src= \"https://raw.githubusercontent.com/Jackhammer9/RedDownloader/main/.github/logo.png\" height=250px width=250px\u003e\n    \n\u003c/div\u003e\n\u003cbr\u003e\u003cbr\u003e\n\n\u003cdiv align = \"center\"\u003e\n\n\n\u003cimg src=\"https://img.shields.io/badge/License-GPLv3-blueviolet\"\u003e\n\n\n\u003c/div\u003e\n\n\u003cdiv align = \"center\"\u003e\n    \n\n![GitHub forks](https://img.shields.io/github/forks/Jackhammer9/RedDownloader?color=red\u0026logo=Github\u0026style=flat-square) ![GitHub watchers](https://img.shields.io/github/watchers/Jackhammer9/RedDownloader?logo=Github) ![GitHub Repo stars](https://img.shields.io/github/stars/Jackhammer9/RedDownloader?logo=Github) ![GitHub followers](https://img.shields.io/github/followers/Jackhammer9?logo=Github) \n\n    \n\u003c/div\u003e\n\n\u003cdiv align = \"center\"\u003e\n    \n![GitHub closed pull requests](https://img.shields.io/github/issues-pr-closed/Jackhammer9/RedDownloader?logo=Github)  ![GitHub closed issues](https://img.shields.io/github/issues-closed/Jackhammer9/RedDownloader?color=255%2C255%2C0\u0026logo=Github)![GitHub repo size](https://img.shields.io/github/repo-size/Jackhammer9/RedDownloader?logo=Github)![GitHub release (latest by date)](https://img.shields.io/github/v/release/Jackhammer9/RedDownloader?display_name=tag\u0026logo=Github)\n    \n\u003c/div\u003e\n\n\u003cdiv align = \"center\"\u003e\n    \n![PyPI - Downloads](https://img.shields.io/pypi/dm/RedDownloader?label=Pypi%20Downloads\u0026logo=Pypi) ![PyPI](https://img.shields.io/pypi/v/RedDownloader?logo=pypi)\n    \n\u003c/div\u003e\n\u003cbr\u003e\n\u003ch1\u003e Introduction \u003c/h1\u003e\n\nA very easy to use Reddit Media Downloader. The library can also be used to download pictures and even picture galleries all just with a reddit post link. You can access Reddit API methods without having your own bot with classes such as ```DownloadBySubreddit``` more on that below.\n\n\u003cb\u003eNOTE: \u003c/b\u003e As of RedDownloader 4 only Youtube and Imgur Single Image Posts are supported\n\u003cbr\u003e\n\u003ch1\u003e Installation \u003c/h1\u003e\nTo Install the package:\n\n```\npip install RedDownloader\n```\n\n\u003cbr\u003e\n\u003ch1\u003e Usage \u003c/h1\u003e\n\n```python\nfrom RedDownloader import RedDownloader\n```\n\nRedDownloader is auth less you don't need to have a praw bot to use this package.\n\nAfter importing, Downloading is just a single line of code\n\n```python\nRedDownloader.Download(url)\n```\n\nso if you want to download a post from the post with url -\u003e https://www.reddit.com/r/videos/comments/xi89wf/this_guy_made_a_1hz_cpu_in_minecraft_to_run/ you would do something like:\n\n```python\nRedDownloader.Download(\"https://www.reddit.com/r/videos/comments/xi89wf/this_guy_made_a_1hz_cpu_in_minecraft_to_run/\")\n```\n\nThis will automatically download media from the passed url it would automatically detect if it's a picture/video/gallery with default options. to pass in an output filename just pass in the output parameter as:\n\n```python\nRedDownloader.Download(url , output=\"MyAwesomeRedditMedia\")\n```\n\nIn case if a post is of type gallery it will make a folder in the ```destination``` path with the output parameter passed. That folder would contain all your pictures. In Case if a folder with that name already exists files would be downloaded in that folder.\n\nTo set a custom path for downloaded file use ```destination``` as an argument like\n\n```python\nRedDownloader.Download(url , output=\"MyAwesomeRedditMedia\" , destination=\"D:/Pictures/\")\n```\n\ndefault file name is \"downloaded\".\nyou don't have to pass in extensions to the output parameter.\n\ndefault download location for file is current working directory.\n\nAnother argument is the ```quality``` argument which defines the resolution to download if the filetype is a video the avaliable options to choose from are 144, 240, 360, 480, 720, 1080 please note that higher resolution would result in bigger file size. If a video file in specified resolution is not found it will try for a lower resolution.\nDefault: 1080p\n\nAn example:\n\n```python\nRedDownloader.Download(url , output=\"MyAwesomeRedditMedia\" , quality = 1080)\n```\nYou at times might need to know the media type of the file being downloaded for that you can use the ```GetMediaType()``` method\n\n```python\nfile = RedDownloader.Download(url)\nprint(file.GetMediaType())\n```\n\nfor images it returns a ```i```  for videos it returns a ```v``` and for a gallery post it returns a ```g``` and a ```gif``` for a gif.\n\nThe package has been tested for videos with no sound as well.\n\nGalleries were first supported in RedDownloader 2.2.0 any older version used to download a gallery post would return a ```Post Not Recoganized``` error\n\u003cbr\u003e\n\u003ch1\u003eUsing Reddit API Methods\u003c/h1\u003e\n\nTo download some number of media from a specific subreddit you can use the ```DownloadBySubreddit```:\n\n```python\nRedDownloader.DownloadBySubreddit(subreddit , NumberOfPosts , flair = None , SortBy = \"hot\" , quality = 720 , output = \"downloaded\" , destination=None)\n```\n\nsubreddit: the subreddit you want to download the posts from.\nNumberOfPosts: the number of posts to download from the subreddit\nflair: to download posts from a specfic flair from the subreddit of your choice by defaut flair is set to ```None``` and downloads posts from any flair\nSortBy: it sorts the posts from the subreddit you can set it to either ```hot```, ```new``` or ```top``` by default it is set to ```hot```\noutput: it is the folder name under which all the posts get downloaded\ndestination: path where the download folder and all the posts are downloaded by default it downloads the posts in current working directory.\n\nessentialy you can just do:\n```python\nRedDownloader.DownloadBySubreddit(\"memes\" , 15)\n```\n\nthis would download the hottest 15 posts from r/memes in a folder called downloaded in your current working directory\n\nalternativley you have:\n\n```python\nRedDownloader.DownloadImagesBySubreddit(\"python\" , 5)\n```\n\nThis would only download Images from a subreddit it is derived from ```DownloadBySubreddit``` hence shares the same argumets as listed above\n\n```python\nRedDownloader.DownloadVideosBySubreddit(\"python\" , 5)\n```\n\nThis would only download Videos from a subreddit it is derived from ```DownloadBySubreddit``` hence shares the same argumets as listed above\n\n```python\nRedDownloader.DownloadGalleriesBySubreddit(\"python\" , 5)\n```\n\nThis would only download Gallery type posts from a subreddit it is derived from ```DownloadBySubreddit``` hence shares the same argumets as listed above\n\u003cbr\u003e\n\u003ch1\u003eNew Features in RedDownloader 3.1.1:\u003c/h1\u003e\n\nYou can now use the ```GetPostAuthor``` class to get a post author/poster from a given url the syntax followed is\n\n```python\nauthor = RedDownloader.GetPostAuthor(url).Get()\nprint(author)\n```\n\nClasses such as ```DownloadBySubreddit``` , ```DownloadImagesBySubreddit``` , ```DownloadVideosBySubreddit``` and ```DownloadGalleriesBySubreddit``` now have a method ```GetPostAuthors``` which returns a list of authors of the posts you just downloaded.\n\nFor regular ```Download``` class you can now use the ```GetPostAuthor``` class to get a post author.\n\nExample:\n\n```python\nposts = RedDownloader.DownloadBySubreddit(\"python\" , 5)\nauthors = posts.GetPostAuthors()\nprint(authors)\n```\n\n\n\u003ch1\u003eNew Features in RedDownloader 3.2.0:\u003c/h1\u003e\n\u003cbr\u003e\n\u003ch2\u003e The GetUser Class \u003c/h2\u003e\n\nYou can now use the ```GetUser``` class to get information about a user with the following syntax\n\n```Python\nUser = RedDownloader.GetUser(\"Jackhammer_YOUTUBE\")\nprint(User.Get())\n```\n\nThis returns a dictionary with a couple of information:\n```\nKey : ReturnType\n    usage\n\n'AccountName' : str\n    the username of the user\n'ID' : str\n    the id of the user\n'CreationDate' : float\n    the date the user was created (in unix time)\n'CommentKarma' : int\n    the amount of comment karma the user has\n'LinkKarma' : int\n    the amount of link karma the user has\n'PremiumUser' : bool\n    whether the user has a premium account or not\n'Moderator' : bool\n    whether the user is a moderator or not\n'Verified' : bool\n    whether the user is verified or not\n```\n\nfor suspended accounts only ```AccountName``` and ```Suspended``` as keys are avaliable\n\n\u003cbr\u003e\n\u003ch2\u003e Cache FIles \u003c/h2\u003e\n\nA new argument called ```cachefile``` can now be used with following classes ```DownloadBySubreddit``` , ```DownloadImagesBySubreddit``` , ```DownloadVideosBySubreddit``` and ```DownloadGalleriesBySubreddit```.\n\n```cachefile``` is useful when you don't want to download an already download file with RedDownloader. Everytime you download posts with ```cachefile``` all the urls of downloaded posts are stored in the file, RedDownloader checks the url of post to be downloaded next time making sure duplicates are avoided. By default it is set to ```None``` meaning it won't be checking for duplicate downloads\n\nTo use ```cachefile``` your virtual environment or work folder should already have a file, RedDownloader won't manually create cachefiles!!!\n\nIf you have an empty file called ```Downloaded.txt``` to use cachefile you can simply do\n\n```python\nRedDownloader.DownloadBySubreddit('memes' , 5 , cachefile='Downloaded.txt')\n```\n\nThis is especially beneficial if you would like to store different types of posts in different cache files. \n\n\n\u003ch1\u003eNew Features in RedDownloader 3.2.1:\u003c/h1\u003e\n\u003cbr\u003e\n\u003ch2\u003e The GetPostTitles \u0026\u0026 GetPostTitle Class \u003c/h2\u003e\n\nYou can now use the ```GetPostTitle``` class to get a post title from a given url the syntax followed is\n \n```python\ntitle = RedDownloader.GetPostTitle(url).Get()\nprint(title)\n```\n\nFor classes like ```DownloadBySubreddit``` , ```DownloadImagesBySubreddit``` , ```DownloadVideosBySubreddit``` and ```DownloadGalleriesBySubreddit``` there is a method ```GetPostTitles``` which returns a list of titles of the posts you just downloaded.\n\nAnd for regular ```Download``` class you can now use the ```GetPostTitle``` method to get a post title.\n\u003cbr\u003e\n\u003ch2\u003e The GetPostAudio Class \u003c/h2\u003e\n\nYou can now use the ```GetPostAudio``` class to get a post audio from a given url the syntax followed is\n     \n```python           \naudio = RedDownloader.GetPostAudio(url)\n```\n\nTo change the file download destination you can set the ```destination``` argument to the path you want to download the file to. By default it downloads the file in the current working directory. To change to output file name you can set the ```output``` argument to the name of the file you want to download the audio to. By default it downloads the file with the name ```Audio.mp3```.\n\n\u003ch1\u003eNew Features in RedDownloader 4.0:\u003c/h1\u003e\n\u003cbr\u003e\n\u003ch2\u003e Youtube and Imgur Support\u003c/h2\u003e\n\nStarting RedDownloader 4 you can download reddit posts which link to a youtube video and imgur single files.\n\u003cb\u003eNOTE:\u003c/b\u003e Imgur Album links are not yet supported\n\nAny Version previous to RedDownloader 4 would yield a ```Post Not Recoganized Error```\n\n\u003ch1\u003eNew Features in RedDownloader 4.2.0:\u003c/h1\u003e\n\u003cbr\u003e\n\u003ch2\u003eVerbose Enabling/Disabling [Silent Mode]\u003c/h2\u003e\n\nStarting RedDownloader 4.2.0 you can disable verbose i.e the ability to download posts without logging anything to the console for a cleaner experience.\nBy default Verbose is set to ```True``` That is all the progress is logged to console\n\nAll Classes accept ```verbose``` as an argument so to disable verbose you can do:\n```python\nDownloadBySubreddit(\"memes\", 5, output=\"Funny Memes\" , verbose=False)\n```\n\nTrying to use verbose with any version previous to RedDownloader 4.2.0 would yield a ```got an unexpected keyword argument``` error\n\n\n\u003ch1\u003eNew Features in RedDownloader 4.3.0:\u003c/h1\u003e\n\u003cbr\u003e\n\u003ch2\u003ei.redd.it and v.redd.it URLs Support\u003c/h2\u003e\nStarting version 4.3.0 RedDownloader can now directly download images and videos from the media url directly. However one limitation that remains would be that classes such as\n\n```GetPostAuthor()```, ```GetPostAudio()```, ```GetPostTitle()``` will \u003cb\u003enot\u003c/b\u003e work for such urls.\n\nFor Example:\n```python\nfrom RedDownloader import RedDownloader\nRedDownloader.Download(\"https://i.redd.it/pjejgqxwnmyb1.jpg\")\n```\n\n\n\u003ch1\u003e Star History \u003c/h1\u003e\n\u003cbr\u003e\n\u003cdiv align = \"center\"\u003e\n\n[![Star History Chart](https://api.star-history.com/svg?repos=Jackhammer9/RedDownloader\u0026type=Date)](https://star-history.com/#Jackhammer9/RedDownloader\u0026Date)\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjackhammer9%2Freddownloader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjackhammer9%2Freddownloader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjackhammer9%2Freddownloader/lists"}