diff --git a/projects/ytmusic.md b/projects/ytmusic.md index eb6ccf8..aef1ebe 100644 --- a/projects/ytmusic.md +++ b/projects/ytmusic.md @@ -1,4 +1,107 @@ -Sure, let's start from the beginning, setting up a Python project using a virtual environment to work with the YTMusic API via OAuth authentication. We'll go through everything step-by-step, from creating the virtual environment to running the OAuth setup, and then using the API to interact with YouTube Music. +# YouTube Music Data Analysis + +## Setup + +```python +from ytmusicapi import YTMusic +import pandas as pd +import matplotlib.pyplot as plt +``` + +# Initialize YTMusic with OAuth credentials +```python +ytmusic = YTMusic('oauth.json') +``` + +## Fetch Data + +### Liked Songs + +```python +liked_songs = ytmusic.get_liked_songs(limit=100) +liked_songs_df = pd.DataFrame(liked_songs['tracks']) +liked_songs_df['artists'] = liked_songs_df['artists'].apply(lambda x: x[0]['name'] if x else None) +liked_songs_df.head() +``` + +### Playlists + +```python +playlists = ytmusic.get_library_playlists(limit=25) +playlists_df = pd.DataFrame(playlists) +playlists_df.head() +``` + +### History + +```python +history = ytmusic.get_history() +history_df = pd.DataFrame(history) +history_df.head() +``` + +## Data Visualization + +### Liked Songs by Artist + +```python +liked_songs_df['artists'].value_counts().plot(kind='bar', figsize=(10, 5)) +plt.title('Liked Songs by Artist') +plt.xlabel('Artist') +plt.ylabel('Number of Liked Songs') +plt.show() +``` + +### History by Title + +```python +history_df['title'].value_counts().plot(kind='bar', figsize=(10, 5)) +plt.title('History by Title') +plt.xlabel('Title') +plt.ylabel('Number of Plays') +plt.show() +``` + +## Save Data to CSV + +```python +liked_songs_df.to_csv('liked_songs.csv', index=False) +playlists_df.to_csv('playlists.csv', index=False) +history_df.to_csv('history.csv', index=False) +``` +``` + +### Full Script Breakdown + +1. **Setup:** + - Import necessary libraries (`ytmusicapi`, `pandas`, `matplotlib`). + - Initialize the YTMusic API with OAuth credentials. + +2. **Fetch Data:** + - Get the user's liked songs and convert them to a DataFrame. + - Get the user's playlists and convert them to a DataFrame. + - Get the user's history and convert it to a DataFrame. + +3. **Data Visualization:** + - Visualize the liked songs by artist using a bar chart. + - Visualize the history by title using a bar chart. + +4. **Save Data to CSV:** + - Save the processed DataFrames to CSV files for further analysis or backup. + +### How to Use This Notebook + +1. **Ensure you have the `oauth.json` file in your project directory, which contains your OAuth credentials for the YTMusic API.** +2. **Start Jupyter Notebook:** + ```bash + jupyter notebook + ``` +3. **Create a new notebook or open an existing one and copy the above cells into the notebook.** +4. **Run the cells step by step to fetch, analyze, visualize, and save your YouTube Music data.** + +This setup will provide you with a comprehensive and interactive data analysis report of your YouTube Music telemetry. + +--- ### Step 1: Set Up Your Python Virtual Environment @@ -60,7 +163,6 @@ First, ensure you have Python installed on your system. I recommend using Python You can create a Python script like `main.py` to start coding with the API: ```python from ytmusicapi import YTMusic - ytmusic = YTMusic('oauth.json') ```