Streaming Wars with Sentiment Analysis using Roberta model: Apple TV+

Shrunali Suresh Salian
10 min readJun 7, 2023

--

Apple TV+ is a subscription-based streaming service offered by Apple Inc. It was launched on November 1, 2019, and aims to provide original, high-quality content across various genres. Apple TV+ differentiates itself by focusing solely on original programming rather than offering a vast library of licensed content.

The article is based on the Kaggle dataset available for AppleTV + . It’s important to note that the analysis and conclusions based on the dataset for Apple TV+ may not reflect the current trends and offerings of Apple TV+. The dataset provides insights based on a specific time period and may not capture the most up-to-date information or changes in the streaming platform.

What would you rather watch? Movies or TV shows?

Apple TV is the only online streaming platform that has a greater number of tv shows than movies.

Apple TV+ is distinguished among online streaming platforms as it prioritizes original TV shows over movies. While other streaming services often have a larger collection of movies, Apple TV+ focuses on delivering a diverse range of high-quality TV series. This strategic approach allows Apple TV+ to showcase its commitment to storytelling and offer compelling narratives through episodic content.

count_data = showtime['type'].value_counts()

# Create a horizontal bar chart
fig = go.Figure(data=go.Bar(
y=count_data.index,
x=count_data.values,
orientation='h',
marker=dict(color=['#666666','#0088cc'])
))

# Set title and axis labels
fig.update_layout(
title='Content on Apple TV+ ',
xaxis_title='Count',
yaxis_title='Type of Content', title_x = 0.5
)
fig.show()

Global Apple TV+ market share

US holds Apple’s largest market share

Apple TV+ enjoys a significant market share in the United States, with 80% of its user base located in the country. Following the US, the United Kingdom holds the second-largest market share at 10%, while Canada accounts for approximately 6% of Apple TV+ subscribers.

top_countries = top_countries[:5]
fig = px.pie(top_countries, values='content_produced', names='production_country',
title='Contribution of Content Produced by Top 5 Countries on Apple TV+')

# Change the color palette
fig.update_traces(marker=dict(colors=['#000000','#666666', '#979797','#eeeeee','#0088cc']))

# Set the text position and information to be displayed
fig.update_traces(textposition='inside', textinfo='percent+label')

fig.show()

Apple TV+’s Content Distribution by Country

Italian (IT), Chinese (CN), and Austrian (AT) audiences show a strong preference for Apple TV+ movies, with a 100% viewership rate. On the other hand, audiences in the United States (US), United Kingdom (GB), and Canada (CA) are more inclined towards watching Apple TV+ shows.

This data suggests that different regions have varying preferences when it comes to content consumption on Apple TV+. Italian, Chinese, and Austrian audiences seem to gravitate towards Apple’s movie offerings, indicating a particular interest in the cinematic experience provided by the platform. Conversely, audiences in the US, UK, and Canada show a greater affinity for Apple TV+ original shows, showcasing a preference for serialized storytelling and episodic content.

fig = go.Figure()
fig.add_trace(go.Bar(
y=data_ratio.country_code,
x=data_ratio['MOVIE'],
name='MOVIE',
orientation='h',
marker=dict(color='#000000'),
text=(data_ratio['MOVIE'] * 100).astype(str) + '%', # Add text as percentages
textposition='inside', # Set text position inside the bars
textfont=dict(color='white') # Set text color
))

fig.add_trace(go.Bar(
y=data_ratio.country_code,
x=data_ratio['SHOW'],
name='SHOW',
orientation='h',
marker=dict(color='#0088cc'),
text=(data_ratio['SHOW'] * 100).astype(str) + '%', # Add text as percentages
textposition='inside', # Set text position inside the bars
textfont=dict(color='white') # Set text color
))

# Set the layout
fig.update_layout(
title='Content Distribution of Apple TV+ by Country',
barmode='stack',
yaxis_title='Top 10 Countries',
xaxis=dict(showticklabels=False), title_x = 0.5 # Hide the x-axis tick labels
)

fig.show()

Well looks like Apple is into some dramatically serious stuff 🤓

Drama dominates Apple’s content on it’s streaming platform

Drama takes the lead as the dominant genre in Apple TV+’s content library, showcasing a strong emphasis on compelling storytelling and character-driven narratives. Following closely behind are documentaries, offering informative and thought-provoking content to engage viewers. Animation, known for its creativity and visual appeal, holds a significant presence, catering to audiences of all ages. Comedy, with its lighthearted and humorous nature, adds an element of entertainment and levity to Apple TV+’s offerings.

genre_distribution = pd.DataFrame(showtime.groupby('primary_genre')['type'].value_counts())
genre_distribution = genre_distribution.unstack().reset_index().fillna(0).drop(0)
genre_distribution['SUM'] = genre_distribution.sum(axis = 1)
genre_distribution.columns = ['primary_genre', 'MOVIE', 'SHOW', 'total']
genre_distribution = genre_distribution.sort_values('total', ascending = False)
fig1 = go.Figure()
fig1.add_trace(go.Bar(
x=genre_distribution['primary_genre'],
y=genre_distribution['MOVIE'],
name='MOVIE',
marker=dict(color='#000000'),
))

fig1.add_trace(go.Bar(
x=genre_distribution['primary_genre'],
y=genre_distribution['SHOW'],
name='SHOW',
marker=dict(color='#0088cc'),
))

fig1.update_layout(
title='Content Distribution by Genre on Apple TV+',
xaxis_title='Genre',
yaxis_title='Content on Apple TV+',
barmode='stack'
)
fig1.show()

Another platform for mature audiences

Apple has a greater number of shows for mature audiences, second followed by R-rated content in movies.

Apple TV+ takes a distinct approach by focusing on producing a significant number of shows tailored for mature audiences. These shows are likely to explore complex themes, mature storylines, and target a more adult demographic. In addition to the mature-oriented shows, Apple TV+ also features a substantial collection of R-rated movies, which further caters to viewers seeking content with more mature and potentially intense or provocative elements.

rating_distribution = pd.DataFrame(showtime.groupby('age_certification')['type'].value_counts())
# rating_distribution = genre_distribution.unstack().reset_index().fillna(0).drop(0)
rating_distribution = rating_distribution.unstack().reset_index().fillna(0)
rating_distribution['SUM'] = rating_distribution.sum(axis = 1)
rating_distribution.columns = ['age_certification','MOVIE','SHOW','Total']
rating_distribution = rating_distribution.sort_values('Total', ascending = False)
rating_distribution = rating_distribution[rating_distribution['age_certification']!='0']
fig2 = go.Figure()

fig2.add_trace(go.Bar(
x=rating_distribution['age_certification'],
y=rating_distribution['MOVIE'],
name='MOVIE',
marker=dict(color='#000000'),

))

fig2.add_trace(go.Bar(
x=rating_distribution['age_certification'],
y=rating_distribution['SHOW'],
name='SHOW',
marker=dict(color='#0088cc'),

))

fig2.update_layout(
title='Content Distribution by Age Rating Certification on Apple TV+',
xaxis_title='Genre',
yaxis_title='Content on Apple TV+',
barmode='stack', legend_title = 'Type of Content', title_x = 0.5
)

fig2.show()

Who is Apple TV+ targeting in your country?

Apple’s audience targeting is more country based.

Apple TV+ adopts a localized approach to audience targeting, tailoring its content offerings based on specific countries. In the United States and Great Britain, Apple’s primary target audience is adults. This suggests that Apple TV+ curates shows and movies that cater to the preferences and interests of adult viewers in these regions, providing content that aligns with their tastes and demographics.

On the other hand, in Canada and Ireland, Apple’s target audience shifts towards children. This indicates that Apple TV+ focuses on delivering content that appeals to younger viewers in these countries, potentially offering a range of engaging and age-appropriate programming for kids.

total_count = demographic_data['count'].sum()
demographic_data['percentage'] = (demographic_data['count'] / total_count) * 100

fig = px.treemap(demographic_data, path=['production_country', 'target_ages'], values='percentage',
color='target_ages', color_discrete_sequence=['#000000','#666666', '#979797','#eeeeee','#0088cc'])

fig.update_layout(title= "Apple TV+'s Country-Level Target Audience",
margin=dict(l=20, r=20, t=40, b=20), title_x = 0.5) # Adjust the margins as needed

fig.show()

Drama is the name of the game for Americans🤟🏻

In the United States, Apple TV+ places a strong emphasis on dramatic content, recognizing the audience’s preference for compelling narratives and thought-provoking storytelling.

In Great Britain, Apple TV+ prioritizes documentaries. Documentaries offer a unique perspective on real-life subjects, allowing viewers to explore and understand various topics in depth. In Canada, Apple TV+ also focuses on animation, indicating a similar interest in visually engaging content.

Relationship between IMDb and TMDb scores

Apple’s the first to break the mold, Apple movies are rated almost similar to its tv shows.

Apple TV+ has distinguished itself by delivering a unique and innovative approach to content creation. Unlike traditional streaming platforms, Apple TV+ has achieved a balance between movies and TV shows in terms of ratings. This indicates that Apple is committed to producing high-quality and well-received content across both formats.

What’s the sentiment of content on Apple TV?

Using Roberta model by Hugging Face to categorize movies as Positive, Neutral and Negative based on the content description

Hugging Face’s Roberta model helps in gauging the sentiment of the content based on the description provided. Roberta excels in understanding context and language patterns and is better at sarcastic sentences, while VADER focuses on sentiment quantification.

The chart provides a quality assessment for each of the movies using the Roberta model. The model helps us in understanding what type of content is produced by Apple TV+.

40% of content on Apple TV+ is neutral, 15% is negative and 44% is positive

Apple is the only online streaming service that has the highest positive sentiment content not only on it’s platform but across all platforms.

The emphasis on positive sentiment content reflects Apple’s dedication to providing uplifting, inspiring, and heartwarming storytelling. This approach not only appeals to a wide range of viewers but also contributes to a more enjoyable and optimistic viewing experience.

By prioritizing positive sentiment content, Apple has created a niche for itself in the streaming landscape, attracting viewers who seek out feel-good stories and uplifting narratives.

showtime['sentiment'] = showtime.apply(lambda row: 'Negative' if row['roberta_neg'] > 0.5 else ('Neutral' if row['roberta_neu'] > 0.5 else 'Positive'), axis=1)
sentiment_counts = showtime['sentiment'].value_counts()

# Create the donut chart trace
fig4 = go.Figure(data=[go.Pie(
labels=sentiment_counts.index,
values=sentiment_counts.values,
hole=0.5, # Set the hole parameter to create a donut chart
marker=dict(colors=['#000000','#666666', '#979797','#eeeeee','#0088cc']), # Set custom colors for the slices
textinfo='label+percent', # Display labels and percentages
textposition='inside', # Set the position of the labels inside the slice
)])

# Set the layout
fig4.update_layout(
title='Sentiment Distribution of Content on Apple TV+',
showlegend=True, title_x = 0.5,
# Add annotations in the center of the donut pies.
annotations=[dict(text='Apple TV+', x=0.50, y=0.5, font_size=15, showarrow=False)]
)
fig4.show()

Relationship between IMDb and TMDb scores of content on Apple TV+ categorized according to the content sentiment

There is no relationship between the sentiment of the content with the IMDb & TMDb scores

The lack of a relationship between content sentiment and IMDb/TMDb scores suggests that the audience’s perception of a piece of content goes beyond its sentiment alone. Numerous factors, such as the quality of acting, storytelling, production value, and personal preferences, can influence viewers’ ratings and reviews.

What type of content are you watching?

Most of the content on Apple is either positive or neutral.

On Apple TV+, the majority of content is categorized as either positive or neutral, indicating a focus on delivering uplifting and balanced storytelling. Drama emerges as the genre with the highest number of neutral sentiment content, followed by negative and positive sentiment content.

genre_sentiment = showtime.groupby(['primary_genre', 'sentiment']).size().reset_index(name='count')
genre_sentiment = genre_sentiment[genre_sentiment['primary_genre']!= 'No Data']
genre_sentiment = genre_sentiment.sort_values('count', ascending = False)
colors = ['#000000','#666666', '#979797','#eeeeee','#0088cc']
fig = px.sunburst(genre_sentiment, path=['primary_genre', 'sentiment'], values='count',
color_discrete_sequence=colors)

fig.update_layout(title='Genre vs Sentiments on Apple TV+', title_x = 0.5)

fig.show()

Keep your ratings and sentiments in check…

Apple’s largest segment on its streaming platform caters to the TV-MA audience

The TV-MA rating indicates that the content is intended for mature audiences and may contain explicit language, violence, or adult themes. Apple’s approach to producing content for this audience involves presenting a diverse range of narratives and emotions.

Words mostly likely to make it to the title on Apple TV+

Word cloud of content titles on Apple TV+

The most common words in the word cloud for Apple TV+ include “Charlie Brown,” “Oprah,” “Christmas,” “Rock,” “Snoopy,” “Presents,” and “Little.” These words suggest that Apple TV+ features content that encompasses various themes and genres.

showtime['title'] = showtime['title'].astype(str)
title_corpus = ' '.join(showtime['title'])
from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator
stopwords = set(STOPWORDS)

# Define a function to specify the text color
def paramount_color(word, font_size, position, orientation, random_state=None, **kwargs):
return "#ffffff"

custom_mask = np.array(Image.open('apple.jpg'))
wc = WordCloud(
stopwords = stopwords,
mask = custom_mask,height = 2000, width = 4000, color_func = paramount_color)
#background_color = 'white',
wc.generate(title_corpus)

plt.figure(figsize=(16,8))
plt.imshow(wc, interpolation = 'bilinear')
plt.axis('off')
plt.show()

Runtime Distribution of Content on Apple TV+

The average runtime of content on Apple TV+ is shorter compared to any other online streaming platform

The average runtime of content on Apple TV+ is shorter, with most content having a duration of less than 60 minutes. This could be attributed to the fact that Apple TV+ focuses more on TV shows rather than movies, which is evident from the histogram distribution.

Who is your Favorite Actor on Apple TV+?

Word cloud of actors on Apple TV+

In conclusion, Apple TV+ stands out among online streaming platforms with its unique offerings and approach. With a greater emphasis on TV shows rather than movies, Apple TV+ has carved its own niche in the streaming landscape. It targets a diverse range of audiences, with a particular focus on adult viewers in the US and GB, and kids in CA and IE.

Apple TV+ boasts a wide variety of content genres, with drama, documentaries, animation, and comedy being the prominent categories. It is known for its high-quality, top-notch programming and has gained recognition for its positive and neutral content, which sets it apart from other platforms.

The streaming service’s content distribution is well-tailored to different regions, with specific genres and target audiences in mind. While drama and documentaries dominate in the US, GB showcases a preference for documentaries and animation. This localized approach reflects Apple TV+’s commitment to providing content that resonates with specific markets.

Apple TV+ excels in offering shorter-form content, with a focus on TV shows and episodes that have an average runtime of less than 60 minutes. This aligns with the platform’s strategy of providing easily consumable, episodic storytelling that appeals to viewers seeking shorter, more flexible viewing experiences.

The project code is available on my Github: https://github.com/shrunalisalian/Streaming-Wars

Apple TV+ Dataset on Kaggle: https://www.kaggle.com/datasets/dgoenrique/apple-tv-movies-and-tv-shows

In case you enjoyed reading this article, feel free to check out articles on Amazon Prime Video, Netflix, HBO Max, Disney+ and Paramount+

Feel free to let me know if you have any suggestions. Thank You for reading!

--

--