= {
channel_ids "Bundeszentrale für politische Bildung":"UCKE_un0UNf7F_gYc_C_Yndw",
"Berliner Landeszentrale für politische Bildung":"UCZVHCB1vBRI1vO38uXZnpDw",
"Brandenburgische Landeszentrale für politische Bildung":"UCmNrZHH7T_JAvTc7Tn6g7dA",
"Landeszentrale für politische Bildung NRW":"UCIBkUJOhqg4Bs7hTyuDTm-A",
"Landeszentrale für politische Bildung Baden-Württemberg":"UCST3n--AgFPCq6CXoKG3QRA",
"Landeszentrale für politische Bildung Sachsen-Anhalt":"UC4HyLNY8q7TpNP1Gp_L_2qg",
"Landeszentrale für politische Bildung Thüringen":"UCX_D7xAzR5F38aXz8dGbRjg",
}
Von YouTube Channel-ID zur YouTube Videoliste
YouTube Channel-ID identifizieren
Um die Channel-ID des YouTube-Kanals der Bundeszentrale für politische Bildung (bpb) zu erhalten, folge diesen Schritten:
Öffne YouTube: Gehe auf die YouTube-Website (https://www.youtube.com).
Suche nach dem Kanal: Gib in der Suchleiste “Bundeszentrale für politische Bildung” ein und drücke Enter.
Wähle den Kanal aus: Klicke auf den Kanalnamen “Bundeszentrale für politische Bildung” in den Suchergebnissen, um zur Kanalseite zu gelangen.
Kanalinformationen: Klicke auf mehr Informationen und wähle Kanal teilen um die Kanal-ID zu erhalten.
Alternative Methode über den Quellcode:
- Rechtsklicke auf die Kanalseite und wähle “Seitenquelltext anzeigen” oder drücke
Strg+U
. - Suche im Quelltext nach
externalId
. Du kannst dies tun, indem duStrg+F
drückst undexternalId
eingibst. - Die Channel-ID wird in der Nähe von
externalId
angezeigt, z.B."externalId":"UCxyz1234567890"
.
- Rechtsklicke auf die Kanalseite und wähle “Seitenquelltext anzeigen” oder drücke
Jetzt hast du die Channel-ID des YouTube-Kanals der Bundeszentrale für politische Bildung.
# Channel-IDs in ein Pandas DataFrame umwandeln
= pd.DataFrame(list(channel_ids.items()), columns=['Kanal', 'ID'])
df
df
Funktion zur Video-ID-Ermittlung
In diesem Abschnitt definieren wir eine Funktion, um alle Videos von einem YouTube-Kanal zu erhalten.
# prompt: write a python function to get all videos from a for the input of a youtube channel id and return the list of video ids. only prepare the function. install any packages and import libraries. dont require an api key. use scrapetube
!pip install scrapetube
from scrapetube import get_channel
import pandas as pd
def get_video_ids(channel_id):
= []
video_ids try:
for video in get_channel(channel_id):
'videoId'])
video_ids.append(video[except Exception as e:
print(f"An error occurred: {e}")
return video_ids
Video-IDs für jeden Kanal abrufen
In diesem Abschnitt rufen wir die Video-IDs für jeden Kanal ab.
# prompt: for each channel id retrieve the list of video ids using the get_video_ids function and save them to a list "video_id"
= [get_video_ids(channel_id) for channel_id in channel_ids.values()] video_id
# Spalte 'Videos' zum DataFrame hinzufügen
'Videos'] = video_id
df[
df.head()
Entfalten der Video-ID-Spalte
In diesem Abschnitt erweitern wir die Video-ID-Spalte, sodass jede Zeile nur eine Video-ID enthält.
# prompt: please explode the video_id column so that each row has only one video_id. please show only the explode command.
= df.explode('Videos') df
Visualisierung der Videoanzahl
In diesem Abschnitt visualisieren wir die Anzahl der Videos pro Benutzername.
# prompt: please visualize the value counts. x axis user_name and y axis number of videos
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# Assuming the provided code has been executed and df is available
# Calculate video counts per user
= df['Kanal'].value_counts()
video_counts
# Create the plot
=(12, 6)) # Adjust figure size as needed
plt.figure(figsize=video_counts.index, y=video_counts.values)
sns.barplot(x"Kanal")
plt.xlabel("Zahl der Videos")
plt.ylabel("Zahl der Videos per Kanal")
plt.title(=45, ha="right") # Rotate x-axis labels for readability
plt.xticks(rotation# Adjust layout to prevent labels from overlapping
plt.tight_layout() plt.show()
Speichern des kombinierten DataFrames
In diesem Abschnitt speichern wir den kombinierten DataFrame als komprimierte CSV-Datei.
# prompt: save the comvbined df to a compressed csv
'df.csv.gz', compression='gzip', index=False) df.to_csv(
Fazit
Dieses Notebook zeigt, wie man YouTube-Kanäle analysiert, indem man Video-IDs extrahiert, die Daten kombiniert und visualisiert, um wertvolle Einblicke in die Videoaktivitäten der Benutzer zu gewinnen.