Turn any subreddit (selftext only) to an ebook.
App currently loads post starting from newest post available.
It also ignores sticky messages and non-selfpost messages.
-
get lastest release from releases.
-
unzip .zip folder
-
modify config.txt
-
run executable
- Linux
- use terminal
- run
chmod +x reddit2ebook-linux
- run
./reddit2ebook-linux
- Windows
- double-click
reddit2ebook-win.exe
- double-click
- Mac
- use terminal
- run
chmod +x reddit2ebook-macos
- run
./reddit2ebook-macos
- if you get a MacOS System warning, go to
Settings > Privacy & Security
and then scroll down in the window and you should see a message about reddit2ebook. - click allow
- try running
./reddit2ebook-macos
from the same directory again.
- if you get a MacOS System warning, go to
- Linux
-
created ebook is found at
./output/<subredditname>.epub
- nodejs
- Tested with
node v10.11.0
- Tested with
- Install required packages
npm i --production
(you don't need archiver to be installed) - copy
.env.default
to.env
ORconfig.default.txt
toconfig.txt
in root folder - modify
.env
file to your liking - run with
npm run start
ORnode index.js
- created ebook is found at
./output/<subredditname>.epub
NOTE: Windows users might need to run npm i --production
in cmd with administrator privileges for node-gyp install to success
- Install required packages
npm i
- If not installed, install pkg globally
npm i -g pkg
- run
npm run build-[linux|win|macos]
to build Linux, Windows or macOS (x64) executables.- compiles executable to root folder
- cover/Reddit2Ebook.jpg
- .env OR config.txt
- index.js OR executable file
# Base configuration. Subreddit OR wikipage is required.
# Base configuration. Subreddit is required.
subreddit=r/talesfromtechsupport # Subreddit with r/
wikipage=https://www.reddit.com/r/hfy/wiki/series/calamitys_shadow # wikipage link
wikipage_title=Calamity's Shadow # wikipage title (same as ebook title)
max_pages=10 # Maxium pages to loop trough
# Page. Values: new|top|hot|rising|controversial
# Default value is new
page=new
# Optional with page. Values: all|hour|day|month|year
# Default value is all
from=all
# Comments (optional). Also extremely slow. disabled by default.
comments_include=false # Enable comments support
comments_min_points=2 # comments minimum points
comments_min_length=50 # comment minimum length
comments_max_parent=3 # Maxium ammount comments on top level
comments_max_replies=2 # Maxium amount of replies
comments_max_replies_indentation=3 # How deep we go. How many levels of replies we output.
[email protected] # Your personal kindle email (NOT YET AVAILABLE)
[email protected] # Your whitelisted email (NOT YET AVAILABLE)
NOTE: config.txt is prioritized over .env
wikipage
also requires wikipage_title
if wikipage
is set, max_pages
, page
and from
is ignored.
After adding comments support, configuration gets little complicated.
Here is little explanation.
As default comments_max_parent
set as 3, we take 3 top level comments.
After that we check if we have comments_max_replies
set. In default configuration it's 2.
That means we take 2 replies for every top level comment.
After that we check how deep we go with comments_max_replies_indentation
. Default is 3.
That means we go two levels below first reply.
So in default configuration, if message thread have 4 indented replies, we only go to "level" 3.
- Send to kindle support (https://www.amazon.com/gp/sendtokindle/email)
- Add local database to remember build ebooks (and renaming ebooks with part x)
Add support for comments- if comments go over certain limit, there is change that all is not fetched.
2022-06-18 - Wikipage support
- added support for wikipages, ex. https://www.reddit.com/r/hfy/wiki/series/calamitys_shadow
Reddit2Ebook automatically lists all post links and download those posts
2021-02-04 - Third release
- added reddit pages (top, hot etc.) support
2018-10-01 - Second release
- added comments support
2018-10-01 - First release
- Turn any subreddit to an ebook
- Supports only selftext post, no images
- Custom ebook cover with subreddit name
- Fully opensource
- Easy to configure and use