Socialblade API wrapper.
Added Twitch and StoryFire support
Prints PewDiePie's subscriber count in real time.
from socialblade import YouTubeChannel
pewdiepie_channel = YouTubeChannel('UC-lHJZR3Gqxm24_Vd_AJ5Yw')
for sub in pewdiepie_channel.live_subscriber_count_generator():
print(sub)
You could also just get the subscriber count as it is at the time, like this:
from socialblade import YouTubeChannel
pewdiepie_channel = YouTubeChannel('UC-lHJZR3Gqxm24_Vd_AJ5Yw')
print(pewdiepie_channel.get_subscriber_count())
In this example we are exporting statistics about PewDiePie's most viewed videos to CSV.
from socialblade import YouTubeChannel
import csv
from datetime import datetime
import locale
locale.setlocale(locale.LC_ALL, '')
def create_more_readable_ints(integer):
return locale.currency(integer, symbol=False, grouping=True).replace('.00', '').replace(',', "'")
pewdiepie_channel = YouTubeChannel('UC-lHJZR3Gqxm24_Vd_AJ5Yw')
writer = csv.writer(
open(
'PewDiePie Most Viewed Videos {}.csv'.format(str(datetime.now().date())),
'w',
newline='',
encoding='utf-8'
)
)
writer.writerow(
['Channel', 'Title', 'Created at', 'Views', 'Comments']
)
for video in pewdiepie_channel.get_most_viewed_videos():
writer.writerow(
[
'PewDiePie',
video.title,
str(video.created_at),
create_more_readable_ints(video.views_num),
create_more_readable_ints(video.comments_num)
]
)
You could do the same thing to any channel. You could also export different types of statistics about videos, which I will list the functions for them here:
- socialblade.YouTubeChannel(channel_id).get_latest_videos()
- socialblade.YouTubeChannel(channel_id).get_most_viewed_videos()
- socialblade.YouTubeChannel(channel_id).get_highest_rated_videos()
- socialblade.YouTubeChannel(channel_id).get_most_relevant_videos()
The Twitter functionality is limited in this wrapper to retrieving follower counts. You could get a Twitter user's live follower count similer to how you get a youtuber's live follower count:
from socialblade import TwitterUser
donald_trump_twitter = TwitterUser('realdonaldtrump').initalize()
for follower in donald_trump_twitter.live_follower_counter(request_delay=500):
print(follower)
You could also get the follower count as it is at the moment, like so:
from socialblade import TwitterUser
donald_trump_twitter = TwitterUser('realdonaldtrump').initalize()
print(donald_trump_twitter.get_follower_count())
Like Twitter, Twitch and StoryFire functionality is also limited to retrieving follower counts.
You could compare the follower counts of a user's multiple platforms, whether that be Twitch and Twitter...:
WARNING: Twitch, Dailymotion and StoryFire may or may not work. We are still working on this issue
from socialblade import TwitterUser, TwitchUser
user = 'michaelreeves'
reeves_twitter = TwitterUser(user).initalize()
reeves_twitch = TwitchUser(user).initalize()
twitter_followers = reeves_twitter.get_follower_count()
twitch_followers = reeves_twitch.get_follower_count()
if twitter_followers > twitch_followers:
print(f"{user} has {twitter_followers - twitch_followers} more followers on Twitch than on Twitter.")
else:
print(f"{user} has {twitch_followers - twitter_followers} more followers on Twitter than on Twitch.")
...or StoryFire and YouTube:
from socialblade import YouTubeChannel, StoryFireUser
rgt_youtube = YouTubeChannel('UCA5RGaQc-a8tIX_AqTTmWdw').initalize()
rgt_storyfire = StoryFireUser('1fozx1kcs0tuj3').initalize()
for sf_subscribers in rgt_storyfire.live_follower_counter():
for yt_subscribers in rgt_youtube.live_subscriber_count_generator():
print(f"{yt_subscribers} on YouTube vs {sf_subscribers} on StoryFire.")
from socialblade import DailymotionUser
newsy = DailymotionUser('newsy').initalize()
print(newsy.get_follower_count())
for follower in newsy.live_follower_counter(request_delay=500):
print(follower)