An Analysis on BANGTANTV
August 04, 2018
Hey everyone! I’m excited to share this new project I’ve been working on for the past few days. As you all know (or didn’t know), I’m a huge fan of the Korean group BTS. They’re a 7-member group that sings, raps, and dances well. They have a huge amount of content so I have always wanted to visualize their data to gain new insights about the group. BANGTANTV is their official YouTube channel where they post videos about their daily lives, dance practices, logs, etc. It currently holds over 850+ videos and they recently hit 10M subscribers, so I was really excited to crunch their data through their YouTube channel. Throughout the blog post, I will be highlighting my favorite videos using . But enough of the intro, let’s get to the process and the results!
The first thing I did was to scrape the data using the YouTube Data API. This was the first time I tried scraping data so I spent a lot of time trying to understand how the YouTube Data API works and how I can ask queries. It was a challenge since I had to go through three queries just to get the statistics of each video in BANGTANTV. But all in all, the tutorials and sample codes provided by YouTube was easy to follow so I was able to grasp on the proper sequence of queries. I also did a lot of data transformation to get the ID for each video and get its statistics. After scraping the data, I loaded the json file and flattened it to get my dataset.
NOTE: I scraped the data last July 29, 2018 at 10 PM KST. All data and results below are based from the snapshot I made from this specific time and date.
import numpy as np
import pandas as pd
import matplotlib
import matplotlib.pyplot as plt
import datetime
import os
import json
import math
import seaborn as sns
import matplotlib.patches as mpatches
from matplotlib.colors import LinearSegmentedColormap, ColorConverter
import re
import matplotlib.dates as dates
from matplotlib.ticker import MaxNLocator
from pandas.io.json import json_normalize
import dateutil.parser
import aniso8601
from IPython.display import HTML
%matplotlib inline
pd.set_option('display.max_columns', None)
json_videos = json.load(open('bangtantv_vids.json', encoding="utf8"))
videos = pd.DataFrame(json_normalize(json_videos['items']))
header = ["contentDetails.videoId"]
videos.to_csv('videoIds.csv', columns=header, index=False)
json_videoIds = json.load(open('videoIds.json', encoding="utf8"))
videoIds = pd.DataFrame(json_normalize(json_videoIds['items']))
After loading the data, I “cleaned” it by converting some values to its appropriate datatype.
videoIds['contentDetails.duration'] = videoIds.apply(lambda row: aniso8601.parse_duration(row['contentDetails.duration']).total_seconds(), axis=1)
videoIds['contentDetails.duration'].sum()
BTS has a total of 856 videos (as of July 29, 2018 at 10 PM KST). They started their account last December 16, 2012 and now has 1.5B+ views in total. BANGTANTV videos has a total duration of 2 days, 6 hours, and 36 seconds. To hardcore ARMYs who want to binge-watch BTS videos, you can allot 2 days of your life for it!
videoIds.loc[videoIds['contentDetails.duration'].idxmin()]
DID YOU KNOW? The shortest video is ’[BANGTAN BOMB] 더우시죠? It is hot today, isn’t it?’ clocking in with only 7 seconds. (I’m not going to complain over Jungkook fanning me for 7 seconds though). Here’s the gem if you want a refresher:
videoIds.loc[videoIds['contentDetails.duration'].idxmax()]
DID YOU KNOW? The longest video is ’[FESTA 2017] BTS (방탄소년단) 꿀 FM 06.13 Happy BTS birthday!’ with 1 hour, 23 minutes, and 41 seconds. If you want to reminisce their FESTA 2017 Kkul FM, here’s the link:
VIEWS
The first thing that comes in to mind when you talk about YouTube videos is the amount of views. BTS gradually grew a lot of viewers and subscribers so it’s necessary to check which videos became a huge hit. With one line of code, I was able to extract the video with the highest and lowest number of views in BANGTANTV.
videoIds['statistics.viewCount'] = videoIds['statistics.viewCount'].astype(float)
videoIds.loc[videoIds['statistics.viewCount'].idxmax()]
The video with the highest views is ’[BANGTAN BOMB] ‘고민보다 GO (GOGO)’ Dance Practice (Halloween ver.) - BTS (방탄소년단)’ with 63.64 million views. This isn’t surprising at all as this video is ranked #17 as most viewed in the last 24 hours the day it was released.
To feed my curiosity more on the top videos in BANGTANTV, I’ve enumerated the top 10 videos with the highest and lowest number of views.
top10_highest_views = videoIds.nlargest(10, 'statistics.viewCount')
top10_highest_views
10 Most-Viewed Videos in BANGTANTV
Video | Views | Year |
---|---|---|
[BANGTAN BOMB] ‘고민보다 GO (GOGO)’ Dance Practice (Halloween ver.) - BTS (방탄소년단) | 63,641,290 | 2017 |
[CHOREOGRAPHY] BTS (방탄소년단) ‘피 땀 눈물 (Blood Sweat & Tears)’ Dance Practice | 37,046,200 | 2016 |
[CHOREOGRAPHY] BTS (방탄소년단) ‘불타오르네 (FIRE)’ Dance Practice | 32,679,447 | 2016 |
방탄소년단 ‘I NEED U’ Dance Practice | 29,434,845 | 2015 |
방탄소년단 ‘Danger’ dance practice | 28,343,359 | 2014 |
[CHOREOGRAPHY] BTS (방탄소년단) ‘DNA’ Dance Practice | 25,950,392 | 2017 |
[BANGTAN BOMB] ‘21세기 소녀 (21st Century Girl)’ Dance Practice (Halloween ver.) - BTS (방탄소년단) | 24,491,873 | 2016 |
[BANGTAN BOMB] ‘호르몬전쟁’ dance performance (Real WAR ver.) | 23,511,936 | 2015 |
BTS (방탄소년단) - Airplane pt.2 @BTS COMEBACK SHOW | 22,244,522 | 2018 |
[BANGTAN BOMB] ‘뱁새’ Dance Practice (흥 ver.) - BTS (방탄소년단) | 18,915,957 | 2016 |
Their top 10 highest viewed videos are all dance practices with an exception of one, their performance of Airplane pt. 2 in their comeback show.
top10_smallest_views = videoIds.nsmallest(10, 'statistics.viewCount')
top10_smallest_views
10 Least-Viewed Videos in BANGTANTV
Video | Views | Year |
---|---|---|
130324 J HOPE | 22,658 | 2013 |
140103 제이홉 | 22,667 | 2014 |
130904 진 | 24,953 | 2013 |
131012 진 | 25,061 | 2013 |
130825 랩몬스터 | 25,244 | 2013 |
130829 제이홉 | 25,415 | 2013 |
130118 RAP MONSTER | 25,506 | 2013 |
130728 j hope | 25,996 | 2013 |
131017 랩몬스터 | 27,683 | 2013 |
130724 랩몬스터 - BTS (방탄소년단) | 28,163 | 2013 |
Sadly, their 10 lowest videos are all BTS logs but don’t fret! They’re all dated way back in 2013 and 2014 and because BANGTANTV do not produce their own subs, it was understandable that they’d get the lowest views.
Now, let’s get the top 10 videos with the highest views per year (from 2013 - 2018). Note that I didn’t include 2012 as BANGTANTV only uploaded 3 videos during this year.
aniso8601.parse_datetime('2017-10-27T13:00:00.000Z')
videoIds['snippet.publishedAt'] = videoIds.apply(lambda row: aniso8601.parse_datetime(row['snippet.publishedAt']), axis=1)
videoIds['snippet.publishedAt.year'] = videoIds.apply(lambda row: row['snippet.publishedAt'].year, axis=1)
pd.set_option('display.max_colwidth', -1)
vids_2018 = videoIds.loc[videoIds['snippet.publishedAt.year'] == 2018]
top10_highest_views_2018 = vids_2018.nlargest(10, 'statistics.viewCount')
top10_highest_views_2018
10 Most-Viewed Videos of BANGTANTV in 2018
For 2018, it was predictable to get their comeback show performances in the top 10 and JK’s G.C.F. But what caught my eye was the Bangtan Bomb ‘j-hope & Jimin Dancing in Highlight Reel (Focus ver.)‘. I didn’t expect this to be in the top 10 so I watched it again and regretted not expecting this on the top 10. I want to share to you all the glory of Hobi and Jimin’s dancing so here’s the link:
vids_2017 = videoIds.loc[videoIds['snippet.publishedAt.year'] == 2017]
top10_highest_views_2017 = vids_2017.nlargest(10, 'statistics.viewCount')
top10_highest_views_2017
10 Most-Viewed Videos of BANGTANTV in 2017
Their top videos on 2017 were mostly their FESTA content. If you didn’t know, FESTA is a more-than-a-week long celebration of their anniversary, so BTS posts a lot of content during this time. G.C.F. in Tokyo is also placed in its rightful throne. But you know their GO GO Dance Practice was such a huge hit that even its behind the scenes video reached the top ten in 2017.
vids_2016 = videoIds.loc[videoIds['snippet.publishedAt.year'] == 2016]
top10_highest_views_2016 = vids_2016.nlargest(10, 'statistics.viewCount')
top10_highest_views_2016
10 Most-Viewed Videos of BANGTANTV in 2016
This was hard to predict as I wasn’t a fan back in 2016 so I think I haven’t seen half of the videos here in the list. (Please don’t judge me, ARMY!)
Actually, I want to thank this opportunity of allowing me to analyze BANGTANTV or else I wouldn’t have found this gem. It has added 10 years to my life!!
vids_2015 = videoIds.loc[videoIds['snippet.publishedAt.year'] == 2015]
top10_highest_views_2015 = vids_2015.nlargest(10, 'statistics.viewCount')
top10_highest_views_2015
10 Most-Viewed Videos of BANGTANTV in 2015
Video | Views | |
---|---|---|
방탄소년단 ‘I NEED U’ Dance Practice | 29,434,845 | |
[BANGTAN BOMB] ‘호르몬전쟁’ dance performance (Real WAR ver.) | 23,511,936 | |
Rap Monster ‘Do You’ MV | 17,744,966 | |
방탄소년단 ‘RUN’ Dance practice | 17,636,564 | |
안아줘 (Hug me) performed by V, j-hope | 12,073,128 | |
[BANGTAN BOMB] it’s tricky is title! BTS, here we go! (by Run–D.M.C.) | 11,931,523 | |
방탄소년단 ‘쩔어’ Dance Practice | 11,090,074 | |
방탄소년단-BTS- Special choreography Stage #2. 이불킥(Embarrassed) for 2015 FESTA | 8,501,420 | |
Rap Monster ‘농담’ MV | 7,982,668 | |
[BANGTAN BOMB] UP DOWN UP UP DOWN (by EXID) | 6,118,248 |
At this point while I’m doing my analysis I’ve been feeling really regretful for not having to know that these kinds of videos exist! This just proves how BTS post a lot of free content that I just can’t keep up! Enough of the fangirling, let’s get to the serious parts. RM’s MVs from his mixtape deserves its rightful place here in the top 10. V and J-Hope’s version of Hug Me was also a hit so I kind of expected this video as well. Of course, it isn’t a top 10 without BTS’ dance practices. This goes to show that BTS aren’t just some kind of band, they are that band (which I mean of course that their choreography and dancing skills are just one of their main assets).
vids_2014 = videoIds.loc[videoIds['snippet.publishedAt.year'] == 2014]
top10_highest_views_2014 = vids_2014.nlargest(10, 'statistics.viewCount')
top10_highest_views_2014
10 Most-Viewed Videos of BANGTANTV in 2014
Video | Views | |
---|---|---|
방탄소년단 ‘Danger’ dance practice | 28,343,359 | |
[BANGTAN BOMB] ‘Just one day’ practice (Appeal ver.) | 17,306,745 | |
[BANGTAN BOMB] War of hormone in Halloween | 14,960,302 | |
[BANGTAN BOMB] 방탄도령단 - 危險 (Appeal ver.) | 11,620,014 | |
방탄소년단 ‘Beautiful’ dance practice | 10,718,401 | |
방탄소년단 ‘호르몬전쟁’ Dance practice | 8,825,709 | |
[BANGTAN BOMB] Someone like you (sung & produced by V) | 6,585,528 | |
[BANGTAN BOMB] Just watching Jung Kook lip sync show | 6,446,505 | |
[BANGTAN BOMB] Jump! Jimin entered the high jump! | 5,663,526 | |
[BANGTAN BOMB] when BTS was practicing the showcase | 5,461,331 |
For 2014, there are more and more videos I haven’t seen. Also, Danger deserves that top spot! I really loved their Danger choreo and while some people called that title track a flop (smh on these people), I think Danger really showed how BTS can up their game with a complicated dance routine. I also must give a shoutout to V’s cover of Someone like you! This was one of the first videos I’ve seen in BTS and I’m so glad it’s in the top 10 for this year.
vids_2013 = videoIds.loc[videoIds['snippet.publishedAt.year'] == 2013]
top10_highest_views_2013 = vids_2013.nlargest(10, 'statistics.viewCount')
top10_highest_views_2013
10 Most-Viewed Videos of BANGTANTV in 2013
Video | Views | |
---|---|---|
방탄소년단 We Are Bulletproof Pt.2 dance practice | 11,342,973 | |
방탄소년단 SBS 가요대전 performance practice | 8,240,594 | |
방탄소년단 BTS Dance break Practice | 7,160,389 | |
방탄소년들의 졸업 | 7,056,277 | |
방탄소년단 ‘진격의 방탄 (Attack on BTS)’ Dance Practice | 6,613,310 | |
[BANGTAN BOMB] N.O (Trot ver.) by Jungkook and (Opera ver.) by BTS | 4,965,081 | |
Beautiful by 방탄소년단 | 4,774,546 | |
[BANGTAN BOMB] BTS Magic show | 3,010,385 | |
[BANGTAN BOMB] Jimin’s ‘GIRL’S DAY- FEMALE PRESIDENT’ dance | 28,174,75 | |
Dance practice by J-HOPE&지민&정국 | 2,544,500 |
As what I’ve mentioned before, BTS’ dance practices have always been placed at the top. But I didn’t expect N.O (Trot ver.) to be here! I acknowledge this is a classic, but I probably forgotten that this was released early on in their career. Plus, who wouldn’t forget about their iconic video of ‘Beautiful’? This was such an awkward phase but I love it.
LIKES
videoIds['statistics.likeCount'] = videoIds['statistics.likeCount'].astype(float)
videoIds.loc[videoIds['statistics.likeCount'].idxmax()]
The video with the highest number of likes is still ’[BANGTAN BOMB] ‘고민보다 GO (GOGO)’ Dance Practice (Halloween ver.) - BTS (방탄소년단)’ with 1.54M likes.
top10_highest_likes = videoIds.nlargest(10, 'statistics.likeCount')
top10_highest_likes
10 Most-Liked Videos of BANGTANTV
Video | Likes | Year |
---|---|---|
[BANGTAN BOMB] ‘고민보다 GO (GOGO)’ Dance Practice (Halloween ver.) - BTS (방탄소년단) | 1,538,722 | 2017 |
[CHOREOGRAPHY] BTS (방탄소년단) ‘FAKE LOVE’ Dance Practice | 1,257,967 | 2018 |
I’d do it all | BTS: Burn the Stage Ep1 | 991,707 | 2018 |
[FESTA 2017] BTS (방탄소년단) Jimin, JK ‘We don’t talk anymore’ | 928,815 | 2017 |
[CHOREOGRAPHY] BTS (방탄소년단) ‘DNA’ Dance Practice | 921,266 | 2017 |
G.C.F in Tokyo (정국&지민) | 920,742 | 2017 |
G.C.F in Saipan | 920,561 | 2018 |
[CHOREOGRAPHY] BTS (방탄소년단) ‘Golden Disk Awards 2018’ Dance Practice #2018BTSFESTA | 883,767 | 2018 |
G.C.F in Osaka | 882,359 | 2018 |
G.C.F in USA | 879,408 | 2018 |
Amazing how all of JK’s G.C.F. videos reached the top 10 in terms of number of likes even when they were just released recently! It was also interesting how Jimin and JK’s cover of ‘We don’t talk anymore’ reached the upper half of this list. It must have gained a lot of likes especially with the JKxCharliePuth interactions!
Below is the list for the top 10 videos with the most likes for each year.
vids_likes_2018 = videoIds.loc[videoIds['snippet.publishedAt.year'] == 2018]
top10_highest_likes_2018 = vids_likes_2018.nlargest(10, 'statistics.likeCount')
top10_highest_likes_2018
10 Most-Liked Videos of BANGTANTV in 2018
Video | Likes | |
---|---|---|
[CHOREOGRAPHY] BTS (방탄소년단) ‘FAKE LOVE’ Dance Practice | 1,257,967 | |
I’d do it all | BTS: Burn the Stage Ep1 | 991,707 | |
G.C.F in Saipan | 920,561 | |
[CHOREOGRAPHY] BTS (방탄소년단) ‘Golden Disk Awards 2018’ Dance Practice #2018BTSFESTA | 883,767 | |
G.C.F in Osaka | 882,359 | |
G.C.F in USA | 879,408 | |
[BTS (방탄소년단) - Airplane pt.2 @BTS COMEBACK SHOW | 835,497 | |
BTS (방탄소년단) - Anpanman @BTS COMEBACK SHOW | 726,775 | |
BTS (방탄소년단) ‘FAKE LOVE’ Self MV @Music Bank Encore stage | 609,415 | |
BTS (방탄소년단) ‘방탄회식’ #2018BTSFESTA | 567,879 |
The ‘FAKE LOVE’ Self MV was a surprise but it definitely deserves its spot!
vids_likes_2017 = videoIds.loc[videoIds['snippet.publishedAt.year'] == 2017]
top10_highest_likes_2017 = vids_likes_2017.nlargest(10, 'statistics.likeCount')
top10_highest_likes_2017[['snippet.title', 'statistics.likeCount']]
10 Most-Liked Videos of BANGTANTV in 2017
vids_likes_2016 = videoIds.loc[videoIds['snippet.publishedAt.year'] == 2016]
top10_highest_likes_2016 = vids_likes_2016.nlargest(10, 'statistics.likeCount')
top10_highest_likes_2016[['snippet.title', 'statistics.likeCount']]
10 Most-Liked Videos of BANGTANTV in 2016
Glad that a SOPE stage reached the top 10 in terms of likes!
vids_likes_2015 = videoIds.loc[videoIds['snippet.publishedAt.year'] == 2015]
top10_highest_likes_2015 = vids_likes_2015.nlargest(10, 'statistics.likeCount')
top10_highest_likes_2015[['snippet.title', 'statistics.likeCount']]
10 Most-Liked Videos of BANGTANTV in 2015
Video | Likes | |
---|---|---|
Rap Monster ‘Do You’ MV | 729,499 | |
[BANGTAN BOMB] ‘호르몬전쟁’ dance performance (Real WAR ver.) | 495,325 | |
방탄소년단 ‘I NEED U’ Dance Practice | 464,221 | |
안아줘 (Hug me) performed by V, j-hope | 451,954 | |
Rap Monster ‘농담’ MV | 378,279 | |
방탄소년단 ‘RUN’ Dance practice | 378,010 | |
[BANGTAN BOMB] it’s tricky is title! BTS, here we go! (by Run–D.M.C.) | 311,538 | |
방탄소년단-BTS- Special choreography Stage #2. 이불킥(Embarrassed) for 2015 FESTA | 226,235 | |
[BANGTAN BOMB] ‘RUN’ christmas ver. | 221,571 | |
방탄소년단 ‘쩔어’ Dance Practice | 197,355 |
Do You at #1 and Awakening at #5!
vids_likes_2014 = videoIds.loc[videoIds['snippet.publishedAt.year'] == 2014]
top10_highest_likes_2014 = vids_likes_2014.nlargest(10, 'statistics.likeCount')
top10_highest_likes_2014[['snippet.title', 'statistics.likeCount']]
10 Most-Liked Videos of BANGTANTV in 2014
The iconic bangtan bombs were shown on the list: Jungkook’s lip sync show and Let’s speak english.
vids_likes_2013 = videoIds.loc[videoIds['snippet.publishedAt.year'] == 2013]
top10_highest_likes_2013 = vids_likes_2013.nlargest(10, 'statistics.likeCount')
top10_highest_likes_2013[['snippet.title', 'statistics.likeCount']]
10 Most-Liked Videos of BANGTANTV in 2013
Video | Likes | |
---|---|---|
방탄소년들의 졸업 | 353,776 | |
방탄소년단 We Are Bulletproof Pt.2 dance practice | 195,062 | |
방탄소년단 BTS Dance break Practice | 192,247 | |
방탄소년단 SBS 가요대전 performance practice | 179,687 | |
[BANGTAN BOMB] N.O (Trot ver.) by Jungkook and (Opera ver.) by BTS | 178,503 | |
Beautiful by 방탄소년단 | 165,918 | |
방탄소년단 ‘진격의 방탄 (Attack on BTS)’ Dance Practice | 159,963 | |
Born Singer by 방탄소년단 | 135,583 | |
[Episode] BTS Debut day 130613 | 120,669 | |
학교의눈물 by 방탄소년단 | 114,031 |
Just looking at this list makes me nostalgic, with BTS Debut day and Born Singer.
DISLIKES
It’s unavoidable so I have to talk about the dislikes as well. The video with the highest number of dislikes is still their GO GO dance practice. Since this video has gained a lot of views, it isn’t really surprising for it to get the higest number of dislikes as well. Below, I will be showing the top 10 videos with the highest number of dislikes.
videoIds['statistics.dislikeCount'] = videoIds['statistics.dislikeCount'].astype(float)
videoIds.loc[videoIds['statistics.dislikeCount'].idxmax()]
top10_highest_dislikes = videoIds.nlargest(10, 'statistics.dislikeCount')
top10_highest_dislikes[['snippet.title', 'statistics.dislikeCount', 'snippet.publishedAt.year']]
10 Most-Disliked Videos of BANGTANTV
Video | Dislikes | Year |
---|---|---|
[BANGTAN BOMB] ‘고민보다 GO (GOGO)’ Dance Practice (Halloween ver.) - BTS (방탄소년단) | 22,906 | 2017 |
I’d do it all | BTS: Burn the Stage Ep1 | 8,807 | 2018 |
[CHOREOGRAPHY] BTS (방탄소년단) ‘DNA’ Dance Practice | 7,472 | 2017 |
Rap Monster ‘Do You’ MV | 7,070 | 2015 |
[CHOREOGRAPHY] BTS (방탄소년단) ‘FAKE LOVE’ Dance Practice | 6,815 | 2018 |
[CHOREOGRAPHY] BTS (방탄소년단) ‘피 땀 눈물 (Blood Sweat & Tears)’ Dance Practice | 6,420 | 2016 |
[FESTA 2017] BTS (방탄소년단) Jimin, JK ‘We don’t talk anymore’ | 5,104 | 2017 |
[CHOREOGRAPHY] BTS (방탄소년단) ‘불타오르네 (FIRE)’ Dance Practice | 5,067 | 2016 |
BTS (방탄소년단) - Airplane pt.2 @BTS COMEBACK SHOW | 4,507 | 2018 |
Official Trailer | BTS: Burn The Stage | 4,264 | 2018 |
It’s so frustrating that RM’s ‘Do You’ MV is part of this list even though it isn’t part of the top 10 highest viewed videos nor in the top 10 highest liked videos. I don’t get how people have the courage to dislike this amazing piece by RM.
Below are the top 10 videos with the highest number of dislikes per year. Some of them are old news and predictable as they were also part of the highest number of views list.
vids_dislikes_2018 = videoIds.loc[videoIds['snippet.publishedAt.year'] == 2018]
top10_highest_dislikes_2018 = vids_dislikes_2018.nlargest(10, 'statistics.dislikeCount')
top10_highest_dislikes_2018[['snippet.title', 'statistics.dislikeCount']]
10 Most-Disliked Videos of BANGTANTV in 2018
vids_dislikes_2017 = videoIds.loc[videoIds['snippet.publishedAt.year'] == 2017]
top10_highest_dislikes_2017 = vids_dislikes_2017.nlargest(10, 'statistics.dislikeCount')
top10_highest_dislikes_2017[['snippet.title', 'statistics.dislikeCount']]
10 Most-Disliked Videos of BANGTANTV in 2017
vids_dislikes_2016 = videoIds.loc[videoIds['snippet.publishedAt.year'] == 2016]
top10_highest_dislikes_2016 = vids_dislikes_2016.nlargest(10, 'statistics.dislikeCount')
top10_highest_dislikes_2016[['snippet.title', 'statistics.dislikeCount']]
10 Most-Disliked Videos of BANGTANTV in 2016
vids_dislikes_2015 = videoIds.loc[videoIds['snippet.publishedAt.year'] == 2015]
top10_highest_dislikes_2015 = vids_dislikes_2015.nlargest(10, 'statistics.dislikeCount')
top10_highest_dislikes_2015[['snippet.title', 'statistics.dislikeCount']]
10 Most-Disliked Videos of BANGTANTV in 2015
vids_dislikes_2014 = videoIds.loc[videoIds['snippet.publishedAt.year'] == 2014]
top10_highest_dislikes_2014 = vids_dislikes_2014.nlargest(10, 'statistics.dislikeCount')
top10_highest_dislikes_2014[['snippet.title', 'statistics.dislikeCount']]
10 Most-Disliked Videos of BANGTANTV in 2014
vids_dislikes_2013 = videoIds.loc[videoIds['snippet.publishedAt.year'] == 2013]
top10_highest_dislikes_2013 = vids_dislikes_2013.nlargest(10, 'statistics.dislikeCount')
top10_highest_dislikes_2013[['snippet.title', 'statistics.dislikeCount']]
10 Most-Disliked Videos of BANGTANTV in 2013
COMMENTS
Guess which video is the most commented? Yep, it’s still their Go Go Dance Practice. Nothing much to see here so you can move on to the top 10 videos with the highest number of comments.
videoIds['statistics.commentCount'] = videoIds['statistics.commentCount'].astype(float)
videoIds.loc[videoIds['statistics.commentCount'].idxmax()]
top10_highest_comments = videoIds.nlargest(10, 'statistics.commentCount')
top10_highest_comments[['snippet.title', 'statistics.commentCount','snippet.publishedAt.year']]
10 Most-Commented Videos of BANGTANTV
Video | Comments | Year |
---|---|---|
[BANGTAN BOMB] ‘고민보다 GO (GOGO)’ Dance Practice (Halloween ver.) - BTS (방탄소년단) | 117,084 | 2017 |
[FESTA 2017] BTS (방탄소년단) Jimin, JK ‘We don’t talk anymore’ | 108,490 | 2017 |
G.C.F in Tokyo (정국&지민) | 82,462 | 2017 |
I’d do it all | BTS: Burn the Stage Ep1 | 78,217 | 2018 |
G.C.F in Saipan | 76,330 | 2018 |
[CHOREOGRAPHY] BTS (방탄소년단) ‘FAKE LOVE’ Dance Practice | 75848 | 2018 |
G.C.F in Osaka | 69,322 | 2018 |
G.C.F in USA | 68,913 | 2018 |
[BANGTAN BOMB] ‘21세기 소녀 (21st Century Girl)’ Dance Practice (Halloween ver.) - BTS (방탄소년단) | 57,784 | 2016 |
We don’t talk anymore by JK | 54,657 | 2017 |
JK received a lot of love in this list, with 6 of the videos coming from him. His G.C.F. videos are really the talk of the town because of his amazing (and hidden) talent in video editing so these videos deserve to be in the top 10.
Below are the lists of top 10 videos with the highest number of comments per year.
vids_comments_2018 = videoIds.loc[videoIds['snippet.publishedAt.year'] == 2018]
top10_highest_comments_2018 = vids_comments_2018.nlargest(10, 'statistics.commentCount')
top10_highest_comments_2018[['snippet.title', 'statistics.commentCount']]
10 Most-Commented Videos of BANGTANTV in 2018
vids_comments_2017 = videoIds.loc[videoIds['snippet.publishedAt.year'] == 2017]
top10_highest_comments_2017 = vids_comments_2017.nlargest(10, 'statistics.commentCount')
top10_highest_comments_2017[['snippet.title', 'statistics.commentCount']]
10 Most-Commented Videos of BANGTANTV in 2017
vids_comments_2016 = videoIds.loc[videoIds['snippet.publishedAt.year'] == 2016]
top10_highest_comments_2016 = vids_comments_2016.nlargest(10, 'statistics.commentCount')
top10_highest_comments_2016[['snippet.title', 'statistics.commentCount']]
10 Most-Commented Videos of BANGTANTV in 2016
vids_comments_2015 = videoIds.loc[videoIds['snippet.publishedAt.year'] == 2015]
top10_highest_comments_2015 = vids_comments_2015.nlargest(10, 'statistics.commentCount')
top10_highest_comments_2015[['snippet.title', 'statistics.commentCount']]
10 Most-Commented Videos of BANGTANTV in 2015
Video | Comments | |
---|---|---|
Rap Monster ‘Do You’ MV | 40,602 | |
[BANGTAN BOMB] ‘호르몬전쟁’ dance performance (Real WAR ver.) | 34,091 | |
방탄소년단 ‘RUN’ Dance practice | 27,954 | |
안아줘 (Hug me) performed by V, j-hope | 20,987 | |
방탄소년단 ‘I NEED U’ Dance Practice | 16,743 | |
Rap Monster ‘농담’ MV | 16,278 | |
[BANGTAN BOMB] ‘RUN’ christmas ver. | 14,958 | |
Lost Stars by Jung Kook | 11,844 | |
[BANGTAN BOMB] it’s tricky is title! BTS, here we go! (by Run–D.M.C.) | 11,587 | |
[BANGTAN BOMB] Jimin: I got yes jam | 9,981 |
vids_comments_2014 = videoIds.loc[videoIds['snippet.publishedAt.year'] == 2014]
top10_highest_comments_2014 = vids_comments_2014.nlargest(10, 'statistics.commentCount')
top10_highest_comments_2014[['snippet.title', 'statistics.commentCount']]
10 Most-Commented Videos of BANGTANTV in 2014
vids_comments_2013 = videoIds.loc[videoIds['snippet.publishedAt.year'] == 2013]
top10_highest_comments_2013 = vids_comments_2013.nlargest(10, 'statistics.commentCount')
top10_highest_comments_2013[['snippet.title', 'statistics.commentCount']]
10 Most-Commented Videos of BANGTANTV in 2013
Video | Comments | |
---|---|---|
방탄소년들의 졸업 | 23,233 | |
Beautiful by 방탄소년단 | 11,841 | |
방탄소년단 We Are Bulletproof Pt.2 dance practice | 9531 | |
[BANGTAN BOMB] N.O (Trot ver.) by Jungkook and (Opera ver.) by BTS | 8,599 | |
방탄소년단 SBS 가요대전 performance practice | 7,319 | |
학교의눈물 by 방탄소년단 | 5,893 | |
Born Singer by 방탄소년단 | 5,420 | |
[Episode] BTS Debut day 130613 | 5,403 | |
흔한 연습생의 Harlem shake.avi | 5,377 | |
방탄소년단 BTS Dance break Practice | 5,337 |
There were a lot of videos in this list that weren’t part of the top 10 videos with the highest number of views and likes. They were mostly bangtan bombs of them goofing around so I think if you’re looking for something fun and popular, I think these lists would come in handy.
Number of Views By Year
I wanted to know how their number of views fared along the years so I made this scatter plot to check if there are any interesting results.
fig, ax = plt.subplots(figsize=(15,10))
time = videoIds['snippet.publishedAt']
views = videoIds['statistics.viewCount']
fig.autofmt_xdate()
ax.scatter(time.values, views, alpha=0.4, s=100)
plt.savefig('views-per-time', dpi=300)
plt.show()
…except, I can’t find anything. I also tried to remove the outlier (their Go Go dance practice) to get better results but still there aren’t.
#pd.set_option('display.max_rows', None)
videoIds_wo_outlier = videoIds.copy()
videoIds_wo_outlier = videoIds_wo_outlier.drop(videoIds_wo_outlier.index[87])
#videoIds_wo_outlier[videoIds_wo_outlier['snippet.title'] != '[BANGTAN BOMB] \'고민보다 GO (GOGO)\' Dance Practice (Halloween ver.) - BTS (방탄소년단)']
videoIds_wo_outlier.shape
fig, ax = plt.subplots(figsize=(15,10))
time = videoIds_wo_outlier['snippet.publishedAt']
views = videoIds_wo_outlier['statistics.viewCount']
fig.autofmt_xdate()
ax.scatter(time.values, views, alpha=0.4, s=100)
comeback = [pd.to_datetime('2013-06-13'), pd.to_datetime('2013-09-11'), pd.to_datetime('2014-02-12'), pd.to_datetime('2014-05-14'), pd.to_datetime('2014-08-19'), pd.to_datetime('2015-04-29'), pd.to_datetime('2015-11-30'), pd.to_datetime('2016-05-02'), pd.to_datetime('2016-10-10'), pd.to_datetime('2017-02-13'), pd.to_datetime('2017-09-18'), pd.to_datetime('2018-05-18')]
for xc in comeback:
ax.axvline(x=xc, color='red', linestyle='--', lw=1, alpha=0.7)
plt.savefig('views-per-time-comeback', dpi=300)
plt.show()
I also plotted this with markers of their comeback which shows that their is a spike of views in their videos right after their comebacks. But I noticed that beginning from their ‘You Never Walk Alone’ comeback, the dots became less dense which means that there is a notable amount of increase of views in their videos! However, this was expected as they got a huge number of following after the events of the BBMAs in early 2017. Also as expected, the dots at the top of the chart are mostly dance practices and performance videos.
Number of Likes By Year
It’s also important to see how the likes in BANGTANTV grew over the years.
fig, ax = plt.subplots(figsize=(15,10))
time = videoIds['snippet.publishedAt']
likes = videoIds['statistics.likeCount']
fig.autofmt_xdate()
ax.scatter(time.values, likes, alpha=0.4, s=100)
comeback = [pd.to_datetime('2013-06-13'), pd.to_datetime('2013-09-11'), pd.to_datetime('2014-02-12'), pd.to_datetime('2014-05-14'), pd.to_datetime('2014-08-19'), pd.to_datetime('2015-04-29'), pd.to_datetime('2015-11-30'), pd.to_datetime('2016-05-02'), pd.to_datetime('2016-10-10'), pd.to_datetime('2017-02-13'), pd.to_datetime('2017-09-18'), pd.to_datetime('2018-05-18')]
for xc in comeback:
ax.axvline(x=xc, color='red', linestyle='--', lw=1, alpha=0.7)
#for i, txt in enumerate(videoIds['snippet.title']):
# if i != 87:
# ax.annotate(txt, ((videoIds['snippet.publishedAt'].values)[i],videoIds['statistics.likeCount'][i]))
plt.savefig('likes-per-time-comeback', dpi=300)
plt.show()
I plotted another scatter plot to see the patterns in terms of YouTube likes. It’s apparent that there’s a slow build up since HYYH Pt. 2 until YOU NEVER WALK ALONE, where the number of likes have grown much faster.
Number of Comments By Year
fig, ax = plt.subplots(figsize=(15,10))
time = videoIds['snippet.publishedAt']
comments = videoIds['statistics.commentCount']
fig.autofmt_xdate()
ax.scatter(time.values, comments, alpha=0.4, s=100)
comeback = [pd.to_datetime('2013-06-13'), pd.to_datetime('2013-09-11'), pd.to_datetime('2014-02-12'), pd.to_datetime('2014-05-14'), pd.to_datetime('2014-08-19'), pd.to_datetime('2015-04-29'), pd.to_datetime('2015-11-30'), pd.to_datetime('2016-05-02'), pd.to_datetime('2016-10-10'), pd.to_datetime('2017-02-13'), pd.to_datetime('2017-09-18'), pd.to_datetime('2018-05-18')]
for xc in comeback:
ax.axvline(x=xc, color='red', linestyle='--', lw=1, alpha=0.7)
plt.savefig('comments-per-time-comeback', dpi=300)
plt.show()
Similar to the chart above, this scatterplot also shows how there was a drastic increase in the number of comments beginning from YOU NEVER WALK ALONE. It’s amazing to see how BTS have fared through the years using their YouTube data.
Relationship between Wiews and Likes
I was also curious how a scatterplot with their number of views and likes would look like so I plotted them. I expected a linear pattern and I was right.
fig, ax = plt.subplots(figsize=(15,10))
likes = videoIds['statistics.likeCount']
views = videoIds['statistics.viewCount']
fig.autofmt_xdate()
ax.scatter(views, likes, alpha=0.4, s=100)
plt.savefig('rel-view-likes', dpi=300)
plt.show()
There are a few notable points, though. JK’s G.C.F. videos are placed higher in the chart, even though they were just recently posted and does not have a lot of views. Their MV Shooting of Danger was also slightly off because it has a lot of views but lesser number of likes.
Relationship between Views and Comments
To check the relationship between views and comments, I plotted a scatter plot as well.
fig, ax = plt.subplots(figsize=(15,10))
comments = videoIds['statistics.commentCount']
views = videoIds['statistics.viewCount']
fig.autofmt_xdate()
ax.scatter(views, comments, alpha=0.4, s=100)
plt.savefig('rel-view-comments', dpi=300)
plt.show()
BTS’ choreography and dance practice videos certainly gained a lot of views but lesser comments. Meanwhile, Jimin and JK’s cover of ‘We don’t talk anymore’ and JK’s G.C.F. tell the opposite. Also I want to give the video ‘V & Jungkook Singing at standby time’ a huge shoutout for being placed high up even with lesser number of views compared to other videos. (Actually, I just wanted to find an excuse to watch this video again so here it is.)
BANGTANTV is home of hundreds of videos; some of them are tagged as ‘Bangtan Bombs’, ‘Choreography’, ‘Episode’, and ‘Dance Practice’. I took the time to arrange my data and group them accordingly. Here are the statistics for each type of video.
BANGTAN BOMBS
There are 437 Bangtan Bombs in BANGTANTV. That composes 51% of all videos in the YouTube channel. The top 10 videos with the highest number of views, likes, and comments are shown below.
bangtan_bombs = videoIds[videoIds['snippet.title'].str.contains('\[BANGTAN BOMB\]|\[Bangtan Bomb\]')]
len(bangtan_bombs)
top10_highest_views_bombs = bangtan_bombs.nlargest(10, 'statistics.viewCount')
top10_highest_views_bombs[['snippet.title', 'statistics.viewCount', 'snippet.publishedAt.year']]
10 Most-Viewed Bangtan Bombs
Video | Views | Year |
---|---|---|
[BANGTAN BOMB] ‘고민보다 GO (GOGO)’ Dance Practice (Halloween ver.) - BTS (방탄소년단) | 63,641,290 | 2017 |
[BANGTAN BOMB] ‘21세기 소녀 (21st Century Girl)’ Dance Practice (Halloween ver.) - BTS (방탄소년단) | 24,491,873 | 2016 |
[BANGTAN BOMB] ‘호르몬전쟁’ dance performance (Real WAR ver.) | 23,511,936 | 2015 |
[BANGTAN BOMB] ‘뱁새’ Dance Practice (흥 ver.) - BTS (방탄소년단) | 18,915,957 | 2016 |
[BANGTAN BOMB] ‘Just one day’ practice (Appeal ver.) | 17,306,745 | 2014 |
[BANGTAN BOMB] War of hormone in Halloween | 14,960,302 | 2014 |
[BANGTAN BOMB] 613 BTS HOME PARTY Practice - Unit stage ‘삼줴이(3J)’ - BTS (방탄소년단) | 12,131,897 | 2017 |
[BANGTAN BOMB] it’s tricky is title! BTS, here we go! (by Run–D.M.C.) | 11,931,523 | 2015 |
[BANGTAN BOMB] 방탄도령단 - 危險 (Appeal ver.) | 11,620,014 | 2014 |
[BANGTAN BOMB] BTS ‘DNA’ MV REAL reaction @6:00PM (170918) - BTS (방탄소년단) | 11,019,375 | 2017 |
top10_highest_likes_bombs = bangtan_bombs.nlargest(10, 'statistics.likeCount')
top10_highest_likes_bombs[['snippet.title', 'statistics.likeCount', 'snippet.publishedAt.year']]
10 Most-Liked Bangtan Bombs
top10_highest_comments_bombs = bangtan_bombs.nlargest(10, 'statistics.commentCount')
top10_highest_comments_bombs[['snippet.title', 'statistics.commentCount', 'snippet.publishedAt.year']]
10 Most-Commented Bangtan Bombs
EPISODE
There are 61 episodes in BANGTANTV. Usually, they show exclusive behind the scenes content on BTS important events. These videos are usually long, with the recent ones ranging from 20-30 minutes each. Below are the top 10 videos tagged as episodes.
episode = videoIds[videoIds['snippet.title'].str.contains('\[Episode\]|\[EPISODE\]')]
len(episode)
top10_highest_views_eps = episode.nlargest(10, 'statistics.viewCount')
top10_highest_views_eps[['snippet.title', 'statistics.viewCount', 'snippet.publishedAt.year']]
10 Most-Viewed Episodes
Video | Views | Year |
---|---|---|
[EPISODE] BTS (방탄소년단) ‘DNA’ MV Shooting | 6,711,481 | 2017 |
[EPISODE] BTS (방탄소년단) @ Billboard Music Awards 2017 | 6,311,151 | 2017 |
[EPISODE] BTS (방탄소년단) ‘불타오르네 (FIRE)’ MV Shooting | 4,747,979 | 2016 |
[Episode] 방탄소년단(BTS) ‘쩔어’ Concept photo & MV shooting | 4,746,911 | 2015 |
[EPISODE] BTS (방탄소년단) ‘Save Me’ MV Shooting | 4,727,814 | 2016 |
[EPISODE] BTS (방탄소년단) ‘MIC Drop’ MV Shooting | 4,605,153 | 2017 |
[Episode] ‘상남자(Boy In Luv)’ MV shooting Sketch | 3,946,962 | 2014 |
[Episode] 방탄소년단 ‘I NEED U’ MV shooting | 3,737,658 | 2015 |
[EPISODE] BTS (방탄소년단) ‘FAKE LOVE’ MV Shooting | 3,496,272 | 2018 |
[EPISODE] BTS (방탄소년단) @ AMAs 2017 | 2,962,220 | 2017 |
top10_highest_likes_eps = episode.nlargest(10, 'statistics.likeCount')
top10_highest_likes_eps[['snippet.title', 'statistics.likeCount', 'snippet.publishedAt.year']]
10 Most-Liked Episodes
Video | Likes | Year |
---|---|---|
[EPISODE] BTS (방탄소년단) ‘FAKE LOVE’ MV Shooting | 490,525 | 2018 |
[EPISODE] BTS (방탄소년단) ‘Euphoria : Theme of LOVE YOURSELF 起 Wonder’ Shooting | 470,270 | 2018 |
[EPISODE] BTS (방탄소년단) LOVE YOURSELF 轉 ‘Tear’ Jacket shooting sketch | 423,222 | 2018 |
[EPISODE] BTS (방탄소년단) ‘DNA’ MV Shooting | 401,021 | 2017 |
[EPISODE] BTS (방탄소년단) ‘MIC Drop’ MV Shooting | 373,802 | 2017 |
[EPISODE] j-hope 1st mixtape MV Shooting #1 | 326,114 | 2018 |
[EPISODE] BTS (방탄소년단) @ Billboard Music Awards 2017 | 293,530 | 2017 |
[EPISODE] BTS (방탄소년단) @ AMAs 2017 | 290,924 | 2017 |
[EPISODE] j-hope 1st mixtape MV Shooting #2 | 281,594 | 2018 |
[EPISODE] BTS (방탄소년단) ‘Highlight Reel’ sketch | 247,887 | 2017 |
top10_highest_comments_eps = episode.nlargest(10, 'statistics.commentCount')
top10_highest_comments_eps[['snippet.title', 'statistics.commentCount', 'snippet.publishedAt.year']]
10 Most-Commented Episodes
Video | Comments | Year |
---|---|---|
[EPISODE] BTS (방탄소년단) @ AMAs 2017 | 20,421 | 2017 |
[EPISODE] BTS (방탄소년단) ‘FAKE LOVE’ MV Shooting | 20,137 | 2018 |
[EPISODE] j-hope 1st mixtape MV Shooting #2 | 20,095 | 2018 |
[EPISODE] BTS (방탄소년단) ‘Euphoria : Theme of LOVE YOURSELF 起 Wonder’ Shooting | 18232 | 2018 |
[EPISODE] j-hope 1st mixtape MV Shooting #1 | 17,121 | 2018 |
[EPISODE] BTS (방탄소년단) @ Billboard Music Awards 2017 | 16,525 | 2017 |
[EPISODE] BTS (방탄소년단) ‘MIC Drop’ MV Shooting | 16,198 | 2017 |
[EPISODE] BTS (방탄소년단) LOVE YOURSELF 轉 ‘Tear’ Jacket shooting sketch | 15,999 | 2018 |
[EPISODE] BTS @2017 SBS 가요대전 | 13,344 | 2018 |
[EPISODE] BTS @2017 MMA | 12,248 | 2018 |
Dance Practice and Choreography
There are a total of 29 dance practice videos in BANGTANTV. From the previous results, we get the idea that dance practice videos usually chart higher in terms of number of views and likes. But listed below are the top 10 dance practice videos.
dance_practice = videoIds[videoIds['snippet.title'].str.contains('Dance Practice|Dance practice|dance practice|\[CHOREOGRAPHY\]|\[Choreography\]')]
len(dance_practice)
top10_highest_views_prac = dance_practice.nlargest(10, 'statistics.viewCount')
top10_highest_views_prac[['snippet.title', 'statistics.viewCount', 'snippet.publishedAt.year']]
10 Most-Viewed Dance Practice/Choreography Videos
Video | Views | Year |
---|---|---|
[BANGTAN BOMB] ‘고민보다 GO (GOGO)’ Dance Practice (Halloween ver.) - BTS (방탄소년단) | 63,641,290 | 2017 |
[CHOREOGRAPHY] BTS (방탄소년단) ‘피 땀 눈물 (Blood Sweat & Tears)’ Dance Practice | 37,046,200 | 2016 |
[CHOREOGRAPHY] BTS (방탄소년단) ‘불타오르네 (FIRE)’ Dance Practice | 32,679,447 | 2016 |
방탄소년단 ‘I NEED U’ Dance Practice | 29,434,845 | 2015 |
방탄소년단 ‘Danger’ dance practice | 28,343,359 | 2014 |
[CHOREOGRAPHY] BTS (방탄소년단) ‘DNA’ Dance Practice | 25,950,392 | 2017 |
[BANGTAN BOMB] ‘21세기 소녀 (21st Century Girl)’ Dance Practice (Halloween ver.) - BTS (방탄소년단) | 24,491,873 | 2016 |
[BANGTAN BOMB] ‘뱁새’ Dance Practice (흥 ver.) - BTS (방탄소년단) | 18,915,957 | 2016 |
[CHOREOGRAPHY] BTS (방탄소년단) ‘FAKE LOVE’ Dance Practice | 18,396,812 | 2018 |
방탄소년단 ‘RUN’ Dance practice | 17,636,564 | 2015 |
top10_highest_likes_prac = dance_practice.nlargest(10, 'statistics.likeCount')
top10_highest_likes_prac[['snippet.title', 'statistics.likeCount', 'snippet.publishedAt.year']]
10 Most-Liked Dance Practice/Choreography Videos
top10_highest_comments_prac = dance_practice.nlargest(10, 'statistics.commentCount')
top10_highest_comments_prac[['snippet.title', 'statistics.commentCount', 'snippet.publishedAt.year']]
10 Most-Commented Dance Practice/Choreography Videos
That’s it for my analysis on BANGTANTV. It was quite a long read but if you have comments, questions, suggestions, or just anything you want to say if you have found a gem through this post, tweet me!