This is a python script to export your saved links from Hacker News. What's a saved link, you ask? Any story that you upvote on HN is added to your saved links. You can access them at https://news.ycombinator.com/upvoted?id=<your username>
while logged in.
I've added also a python script to export the comment that have been upvoted.
Python 3 is required to run this. If you don't have it installed, install it using the package manager for your OS before following these instructions.
-
Setup a virtual env (recommended, but optional) and install the dependencies:
# Set up and activate a Python 3 virtual env $ python3 -m venv venv $ source venv/bin/activate # Install dependencies $ pip install -r requirements.txt
You might have to use
sudo
with the last command on Linux. -
Run the script export_links.py and enter your HN login credentials.
$ python3 export_links.py Enter your HN account details: Username: amjd Password: [password will be hidden]
-
After all the links are processed, you will be asked to enter an output file name. Use any name with the extension
.json
or.csv
, or leave blank to go with the defaultlinks.json
. The output file will be saved in the appropriate format. -
Run the script export_comments.py and enter your HN login credentials.
$ python3 export_comments.py Enter your HN account details: Username: amjd Password: [password will be hidden]
-
After all the comments are processed, you will be asked to enter an output file name. Use any name with the extension
.json
or.csv
, or leave blank to go with the defaultcomments.json
. The output file will be saved in the appropriate format. -
Profit!
P.S.: Your username and password are 100% safe and are sent over HTTPS. You can study the source code of this small script to verify that.
JSON:
{
"total": 2661,
"links": [
{
"author": "coloneltcb",
"url": "https://m.signalvnoise.com/getting-from-%EF%B8%8F-%EF%B8%8F-to-%EF%B8%8F-%EF%B8%8F-%EF%B8%8F-%EF%B8%8F-%EF%B8%8F-c65cc3bb7cb1#.rgrwe5cnw",
"age": "2 days ago",
"title": "How to ask for reviews without feeling icky about it",
"comments_url": "https://news.ycombinator.com/item?id=11740967",
"number": 1,
"comments": 28,
"points": 79
},
{
"author": "adventured",
"url": "http://www.bloomberg.com/news/articles/2016-05-22/modi-s-mini-shuttle-set-to-blast-into-elon-musk-s-race-for-space",
"age": "7 hours ago",
"title": "India is set to launch a scale model of a reusable spacecraft on Monday",
"comments_url": "https://news.ycombinator.com/item?id=11751776",
"number": 2,
"comments": 43,
"points": 117
},
"..."
{
"author": "lydiahan",
"url": "http://www.linkedin.com/today/post/article/20131029100222-95015-my-first-job-fired-and-rehired-on-day-1?trk=tod-home-art-list-small_1",
"age": "931 days ago",
"title": "My First Job: Fired and Rehired on Day 1",
"comments_url": "https://news.ycombinator.com/item?id=6667202",
"number": 2661,
"comments": 113,
"points": 199
}
]
}
JSON:
{
"total": 163,
"links": [
{
"author": "FireInsight",
"author_url": "https://news.ycombinator.com/user?id=FireInsight",
"age": "1 day ago",
"story_title": "Show HN: Writedown - Open Source Markdown Diary",
"story_url": "https://news.ycombinator.com/item?id=36461866",
"context": "https://news.ycombinator.com/context?id=36466326",
"comment": "I use logseq for my diaries. https://logseq.com/It's very powerful, but really doesn't feel that way. Each day I open it, it creates a new YYYY-MM-DD.md and shows it to me. All content is MD lists (or \"blocks\") and can be individually tagged with #hashtags. When there's a certain topic I wrote about, say writing down a dream I had, I tag the top-level block with #dream. Then I can write under it as I please. All such blocks will be visible on the #dream page, with the correct dates visible.It's very easy to wrap my head around. I just write, outliner style, whatever I'm thinking of and want to write down. Never need to create a new page, always just directly to writing. Earlier dates can be found by just scrolling down.I don't know why anyone with the technical knowhow to use a notetaking tool that's just a folder with markdown files would use a journaling app on some server somewhere. Syncing is very easily handled, too, with something like Syncthing or Dropbox."
},
{
"author": "JusticeJuice",
"author_url": "https://news.ycombinator.com/user?id=JusticeJuice",
"age": "2 days ago",
"story_title": "Arwes: Futuristic Sci-Fi UI Web Framework",
"story_url": "https://news.ycombinator.com/item?id=36446637",
"context": "https://news.ycombinator.com/context?id=36449381",
"comment": "https://www.hudsandguis.com/ - more FUI work, one of my favourite sites."
},
"..."
{
"author": "danenania",
"author_url": "https://news.ycombinator.com/user?id=danenania",
"age": "on May 18, 2022",
"story_title": "I spent two years launching tiny projects",
"story_url": "https://news.ycombinator.com/item?id=31421364",
"context": "https://news.ycombinator.com/context?id=31424699",
"comment": "Check out the #buildinpublic hashtag on Twitter. You\u2019ll find many good examples.Also Indiehackers."
}
]
}
HN Saved Export by amjd
HN Saved Export by thomaskcr
If you think of any improvements, create an issue or send a pull request. :)