Release 3.0.0¶
Bugfixes, SQLite, and a User Interface!
Yes, I know I'm jumping a whole major version again. Before I get into further detail, the major jump is because this release may bring breaking changes to some preexisting users. If you're a previous user with a lot of Posts saved, or you've been running RMD in automated server-side setups, please read the patch notes before updating.
See Upgrading at the bottom of this file, before running the upgraded RMD on an old database.
SQLite Manifest¶
-
The manifest (and all other non-setting data) is now stored in a SQLite database.
- This massively shrinks the memory requirements for users downloading thousands of Posts.
- Startup speed, as well as overall runtime, will likely be noticably faster for users.
-
File hashes (used for deduplication) are now archived and timestamped.
- This will prevent files from being re-hashed unless RMD finds one that has been modified since it last checked.
- Being able to skip checking known files means RMD is massively faster when checking old Posts.
-
File paths are now stored relative to the base download directory.
- RMD can now be booted from anywhere (provided you tell it where the settings file is)
- Moving the RMD base storage directory will no longer impact RMD's performance.
User Interface (WebUI)¶
- RMD now has a User Interface!
- It's has an awesome media viewer.
- it's browser-based.
- It's also enabled by default after converting, so be sure to disable it if you're running on a headless server.
Settings (and Command Line Argument) Overhaul¶
- Settings have been rebuild from the ground up to provide much-needed features for supporting a UI.
- Your old settings file will be automatically converted on the first post-update RMD launch.
- Settings are still stored in
settings.json
, and most of them are the same. - Several new settings have been added, relating the to WebUI.
- As a result of the Settings changes, there have been several added and removed command-line parameters.
- Most notably, all parameters relating to things controlled by settings are now passed in a new format. Check the new options here
Ding Dong, the Wizard's Dead¶
- Because the UI is just so much better at managing Settings, the wizard has been replaced by it.
- Users running on external servers can either access the UI remotely, or run an RMD instance locally to generate the settings file.
New Authentication¶
- RMD no longer accepts usernames and passwords for authentication. Instead, it uses oAuth.
- Big thanks to the PRAW Devs for fixing the oAuth bug previously preventing this
- This also enables accounts with 2FA to authorize smoothly.
More Reddit Options¶
- RMD can now sort all applicable Sources by "best".
- Many Sources now optionally accept a list of comma-separated subreddits/users/etc to individually scan.
PushShift Support¶
- PushShift has been added for scanning Subreddits and Users.
- The PushShift API allows you to scan beyond the 1000 post limit Reddit's site has, and it's fast!
Multiprocessing Support¶
- RMD now uses multiple processes, instead of multiple threads.
- This allows RMD to use multiple CPU cores, and prevents bottlenecking during heavy downloading.
Prebuilt Binaries & Automatic updater¶
- RMD releases now come with prebuilt binary executables - supporting Windows, MacOS, and Ubuntu.
- If you use one of these binaries, it will (by default) automatically update itself to the latest packages.
- This auto-update feature makes sure that you're using the latest packages to download the broadest site support.
- To disable this feature, either use the python version, or launch the binary with
--skip_update
.
Bug Fixes¶
- Comments now properly set their own ID, rather than their parent ID.
- This requires a one-time conversion, which will attempt to prevent RMD from re-downloading those Posts.
- While most Comments will likely be converted, if you've got an especially large amount of comments already saved, you may notice several end up downloading duplicates.
- If you're still concerned, see here for more information.
- Long filenames on non-windows systems should be properly trimmed to OS length constraints.
- Fixed a possible (but unlikely) race condition where the same Post could be processed twice when the stars aligned.
Upgrading¶
Upgrading to this RMD version will require you to first run a conversion utility, which is bundled with RMD.
This tool can be launched, using python redditdownloader/tools/manifest_converter.py
.
You can also directly launch it directly from within its folder.
The tool exists to convert old database formats to the new one, as well as fix a few data bugs from older versions. Because of these bugs, not all posts may be correctly migrated to the new format. These will be logged in a file inside the new output folder, for you to manually handle.