Get Hot Posts From Subreddit

Tags: #reddit #subreddit #data #hottopics #rss #information #opendata #snippet #dataframe
This notebook explains how to get hot posts from a subreddit. A subreddit is a specific online community, and the posts associated with it, on the social media website Reddit


Install packages

!pip install praw
import praw
import pandas as pd
import numpy as np
from datetime import datetime

Choose Subreddit topic

SUBREDDIT = "Python" #example: "CryptoCurrency"

Setup App to connect to Reddit API

  • To get data from reddit, you need to create a reddit app which queries the reddit API.
  • Select “script” as the type of app.
  • Name your app and give it a description.
  • Set-up the redirect uri to be http://localhost:8080.
  • Once you click on “create app”, you will get a box showing you your "client_id" and "client_secrets".
  • "user_agent" is the name of your app.
If you need help on setting up and getting your API credentials, please visit ---> Get Reddit API Credentials​
MY_USER_AGENT = 'script by u/naas'


Connect with the reddit API
reddit = praw.Reddit(client_id=MY_CLIENT_ID, client_secret=MY_CLIENT_SECRET, user_agent=MY_USER_AGENT)
Get the subreddit level data
posts =[]
for post in reddit.subreddit(SUBREDDIT).hot(limit=50):
posts.append([post.title, post.score,, post.subreddit, post.url, post.num_comments, post.selftext, post.created])
posts = pd.DataFrame(posts,columns=['title', 'score', 'id', 'subreddit', 'url', 'num_comments', 'body', 'created'])
  • If you need more variables, check "vars()" function``
  • Usage: 'vars(post)', you'll get post level variables
Convert unix timestamp to interpretable date-time


Hint: Filter data using "created" variable for past 24 hours hot posts

Additional Resources

  • More info on the PRAW package used:
Last modified 1mo ago