{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "7af5ad73",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-19T17:16:58.142338Z",
     "start_time": "2024-01-19T17:16:55.272095Z"
    }
   },
   "outputs": [],
   "source": [
    "import math\n",
    "import numpy as np\n",
    "import tqdm\n",
    "import torch\n",
    "import funcy\n",
    "import json\n",
    "import gc\n",
    "import re\n",
    "import random\n",
    "import tempfile\n",
    "import collections\n",
    "from collections import defaultdict\n",
    "from joblib import Parallel, delayed\n",
    "from transformers import BertTokenizer\n",
    "import os\n",
    "\n",
    "import torch\n",
    "import librosa\n",
    "import numpy as np\n",
    "\n",
    "\n",
    "from suno_utils.utils.text import write_jsonl, read_jsonl, write_json, read_json, normalize_whitespace\n",
    "from suno_utils.utils.s3 import read_from_s3, check_s3_file_exists, open_from_s3\n",
    "from suno_utils.audio import Audio\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "b5d10cbf",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-19T17:16:58.152652Z",
     "start_time": "2024-01-19T17:16:58.149178Z"
    }
   },
   "outputs": [],
   "source": [
    "# genius_data = read_from_s3(\"s3://suno-data/datasets/bundles/v1/genius_hq/metas_plus.jsonl\", read_f=read_jsonl)\n",
    "# write_jsonl(genius_data, \"/app/suno/data/high_freq/genius_meta.jsonl\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "4a0922c6",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-19T17:18:11.184738Z",
     "start_time": "2024-01-19T17:16:58.158114Z"
    }
   },
   "outputs": [],
   "source": [
    "genius_data = read_jsonl(\"/app/suno/data/high_freq/genius_meta.jsonl\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "eee0053d",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-19T17:18:11.190088Z",
     "start_time": "2024-01-19T17:18:11.187262Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2090009\n"
     ]
    }
   ],
   "source": [
    "print(len(genius_data))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "29f48351",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-19T17:18:11.245358Z",
     "start_time": "2024-01-19T17:18:11.191712Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'id': 'ff19df64-ae4e-4739-b6b4-bf62a0b7b35d', 'original_id': 'NWOZGWsDPwI', 'audio_filepath': 's3://suno-data/datasets/harvest/genius_hq/audio/NWOZGWsDPwI.webm', 'duration_s': 252, 'lyrics': \"[Intro: 070 Shake]\\nOoh, I remember you said\\nOoh, I remember you said\\nOoh, I remember you said\\nOoh, I remember you said\\n\\n[Verse 1: 070 Shake]\\nOut of everyone\\nThat would stand in front of me\\nYou know you're the one\\nI could never let you leave\\nI've been holding on\\nI've been holding on for weeks\\nWe don't have to go\\nDon't you let go of my heart\\nHold it in your arms\\nWe can share love, oh, oh\\nYou were meant for me\\nYou belong to me, oh\\n[Chorus: 070 Shake]\\nEl-le-ho-ho, el-le-ha-ha\\nI was only gone for the past few months\\nYou will let me go, you will let me go, yeah\\nWith me, yeah\\nYou belong to me\\n\\n[Verse 2: 070 Beheard]\\nYeah, back like I left my weed\\nWay too much pressure, can't breathe\\nGot the world on my shoulders, get the hate off me\\nGet some grabba, then I roll it, put my mind at ease\\nIn the sky, see me soaring (Soaring)\\nBut you're far from it (Far)\\nOoh, what you want from it?\\nDon't pay attention, I ain't paid yet\\nYoung boy, Cole World, damn, I love my Avirex\\nTalk hot, get popped, I ain't gotta say the rest\\nWe won't ever play the bench\\nYou don't wanna play with us, ooh\\nShorty from the 7 in a armageddon\\nYou don't wanna wreck with us\\nWatch how they leave, Exodus (Exodus)\\nTalk my shit, can't censor us (Censor us)\\nBeen had the vision, yeah (Yeah)\\nTook long to get it, yeah (Yeah)\\nLifelines was given, yeah (Yeah)\\nKnowledge and wisdom, yeah\\nBuilding up my prism, it don't matter the religion\\nTake a look at how we living and we living good, yeah, yeah\\nTake a look at how we living and we living good\\n\\n\\n[Interlude: 070 Shake]\\nAnd a little voice said, ooh (Little voice said)\\nAnd a little voice said, ooh (Little voice said)\\nAnd a little voice said, ooh (Little voice said)\\nAnd a little voice said, yeah (Little voice said)\\n\\n[Verse 3: 070 Shake]\\nYou were once the one\\nYou would stand in front of me\\nYou would say I'm wrong\\nBut I'd never let you leave\\nI was holding on\\nI was holding onto each\\nWe don't have to go\\nWe don't let go of my\\nOh, I look into your eyes\\nI feel my lies\\nWoah, and you reminded me\\nAnd you were said to me\\n\\n[Chorus: 070 Shake]\\nEl-le-ha-hey, el-le-ha-ho (Mm, uh)\\nI was only gone for the past few months (Mm, yeah)\\nIsn't that what you want? Isn't that what you want?\\nGonna lead me on (Gonna lead me on)\\nGonna lead me on, yeah, yeah, uh-oh\", 'lang': 'en', 'tags': [352], 'genius_views': 2093, 'youtube_views': 9145, 'tags_text': ['R&B Genius'], 'genius_slug': '070-beheard-and-070-shake-said-lyrics', 'youtube_title': '070 Beheard & 070 Shake - Said [Official Audio]', 'youtube_uploader_id': '@iamnot070shakeseriously2', 'youtube_channel_id': 'UCXvP8LEOL_ctZ18eRcD6JPg'}\n"
     ]
    }
   ],
   "source": [
    "for test_index, data in enumerate(genius_data):\n",
    "    if data[\"id\"] == \"ff19df64-ae4e-4739-b6b4-bf62a0b7b35d\":\n",
    "        print(data)\n",
    "        break"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "c673f40e",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-19T17:18:21.590440Z",
     "start_time": "2024-01-19T17:18:11.246723Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "15925.78125\n"
     ]
    }
   ],
   "source": [
    "# 300s random waveform input\n",
    "# wav = (torch.rand((1, 48000 * 300)) - 0.5) * 2\n",
    "\n",
    "audio = Audio.from_s3(genius_data[test_index][\"audio_filepath\"])\n",
    "# spectral roll-off\n",
    "roll_off = librosa.feature.spectral_rolloff(\n",
    "    y=audio.array_float.astype(\"float32\"),\n",
    "    sr=48000,\n",
    "    n_fft=4096,\n",
    "    hop_length=480,\n",
    "    roll_percent=0.99,\n",
    ")[0]\n",
    "\n",
    "# max pooling with 30s window -- if the audio is too short this will throw a nan\n",
    "window_step = 100\n",
    "pooled_roll_off = np.array(\n",
    "    [\n",
    "        np.max(roll_off[ix : ix + 3000])\n",
    "        for ix in range(0, len(roll_off) - 3000 + window_step, window_step)\n",
    "    ]\n",
    ")\n",
    "\n",
    "# take median\n",
    "roll_off_median = np.median(pooled_roll_off)\n",
    "\n",
    "# get pass / fail\n",
    "# pass_fail = \"pass\" if roll_off_median > 17000 else \"fail\"\n",
    "print(roll_off_median)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "d829be35",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-19T19:48:00.609687Z",
     "start_time": "2024-01-19T19:48:00.411783Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAGzCAYAAAAFROyYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAAA1b0lEQVR4nO3de3yMd/7//+dEjkQSQTJSCYpSh6KoplW0shK1DqWLNu1XrdJupSfdItuiutrgo61SpO22tPthu/RTaqtlbRyiGqc4bKlzndpKWJEErQh5//7ozfw6EiQ6kfdkH/fbbW43877e857Xay6Rp2uua8ZhjDECAACwiE9FFwAAAHApAgoAALAOAQUAAFiHgAIAAKxDQAEAANYhoAAAAOsQUAAAgHUIKAAAwDoEFAAAYB0CCmAhh8Ohl156yXV/zpw5cjgcOnjw4HWvpX79+nrkkUeu+/MC+O9GQAFw3bzyyivq1auXIiMji4WwX3rppZfkcDiK3QIDA4vNzc7O1uDBgxUREaGgoCDdeuutWrBgQbF5n3zyiQYMGKAbb7xRVatWVZMmTfTcc88pNze32Nz69euX+PyPP/74VXu8XO0Xb2vXrnWbP3/+fN1+++0KCwtTzZo11blzZy1ZsuSaX7vr1SdQ3nwrugAAV/fwww9r4MCBCggIuO7PvXv3bvn4eOb/Mi+++KKcTqfatGmjZcuWXXX+rFmzFBwc7LpfpUoVt+35+fnq2LGjsrOz9fTTT8vpdGr+/Pnq37+/5s6dqwcffNA1d9iwYYqKitJDDz2kmJgYff3113rrrbf0+eefa/PmzQoKCnJbu3Xr1nruuefcxm666aar1ty3b181atSo2Pif/vQnnT59Wu3bt3eNTZ8+XU899ZR69OihiRMn6uzZs5ozZ45++9vf6v/+7//Ut29f19zSvnbXq0+g3BkA1pFkxo0bV9FleNyBAweMMcYcP378ij2OGzfOSDLHjx+/4nqTJ082kkxaWppr7MKFC6Z9+/bG6XSagoIC1/jKlSuLPf6DDz4wksy7777rNl6vXj3To0eP0jVVCocPHzYOh8MMHTrUbbxx48amffv2pqioyDWWl5dngoODTa9evdzmlva1q8g+AU/iLR7gEhcP0e/Zs0cPPfSQQkNDVbt2bY0ZM0bGGB05ckS9e/dWSEiInE6nXnvttWJrFBQUaNy4cWrUqJECAgIUHR2tkSNHqqCgoNi8Z599VrVr11b16tXVq1cvfffdd8XWK+kclE8//VQ9evRQVFSUAgIC1LBhQ/35z3/WhQsX3B7bpUsXtWjRQt98843uvvtuVa1aVTfccIMmT55cqtfj0nNQCgsLNX78eDVu3FiBgYGqWbOmOnbsqOXLl5dqrbIwxig/P1/mMl+6vmbNGtWuXVv33HOPa8zHx0f9+/dXVlaWVq9e7Rrv0qVLscffd999kqSdO3eWuP65c+d05syZMtVckr/97W8yxigxMdFtPD8/XxEREXI4HK6xkJAQBQcHFzvSUdrXriL7BDyJgAJcxoABA1RUVKSJEyeqQ4cOmjBhgqZOnarf/OY3uuGGGzRp0iQ1atRIf/zjH5Wenu56XFFRkXr16qUpU6aoZ8+emj59uvr06aM33nhDAwYMcHuORx99VFOnTlW3bt00ceJE+fn5qUePHqWqb86cOQoODtaIESP05ptvqm3btho7dqxGjx5dbO7JkyeVkJCgVq1a6bXXXlPTpk01atQoffHFF2V+XV566SWNHz9ed999t9566y298MILiomJ0ebNm8u81tXceOONCg0NVfXq1fXQQw8pOzvbbXtBQUGxX+SSVLVqVUlSZmbmFdfPysqSJNWqVavYthUrVqhq1aoKDg5W/fr19eabb15rG5o7d66io6PVqVMnt/EuXbpo6dKlmj59ug4ePKhdu3Zp+PDhysvL09NPP33Nz3ep69Un4FEVewAHsM/FtxeGDRvmGjt//rypW7eucTgcZuLEia7xkydPmqCgIDNo0CDX2F//+lfj4+Nj1qxZ47ZuamqqkWTWrl1rjDFm69atRpJ54okn3OY9+OCDxQ7hz54920hyHeY3xpgff/yxWO2PPfaYqVq1qjl79qxrrHPnzkaS+fDDD11jBQUFxul0mn79+l319ahXr55bf61atfrVbwtc7W2KqVOnmqSkJDN37lzz8ccfm6efftr4+vqaxo0bm7y8PNe8J5980vj4+JiDBw+6PX7gwIFGkklKSrpiHUOGDDFVqlQxe/bscRvv2bOnmTRpklm0aJF57733zF133WUkmZEjR5a51+3bt1/2sdnZ2aZr165GkutWq1Yt89VXX112vau9diW5Hn0CnkZAAS5xMaBs2LDBbbxPnz4lnhfRunVrc9ddd7nu9+rVyzRv3twcP37c7bZnzx4jyUyYMMEYY8yrr75qJJldu3a5rbdhw4ZSBZRfys/PN8ePHzf/+7//aySZrVu3urZ17tzZBAcHu53ncLHONm3aXPX1uDSgdO7c2dSvX7/YL7uyuJZfsnPnzjWSTEpKimts27Ztxs/Pz9x2221m7dq1Zt++febVV181AQEBRpIZMmTIVdcrzS/joqIiEx8fb3x9fc2RI0dKXbMxxiQnJxtJZtu2bcW2nTp1yjzxxBNm0KBBZsGCBeb99983LVu2NE6n0+zdu7fE9cr62l2vPgFP4y0e4DJiYmLc7oeGhiowMLDYYfLQ0FCdPHnSdX/v3r3asWOHateu7Xa7eGXEsWPHJEmHDh2Sj4+PGjZs6LZekyZNSlXfjh07dN999yk0NFQhISGqXbu2HnroIUlSXl6e29y6deu6necgSTVq1HCru7Refvll5ebm6qabblLLli31/PPP69///neZ1ymrBx98UE6nU//6179cY7fccovmzZun/fv3684771SjRo00bdo0TZ06VZLcrgD6pTVr1mjIkCGKj4/XK6+8ctXndjgcevbZZ3X+/HmtWrWq1DUbYzRv3jy1aNFCt9xyS7Htv/vd73T48GHNmTNH999/vwYPHqxVq1bp3LlzeuGFF0r9PJdzvfoEygOXGQOXceklrZcbk+R2EmdRUZFatmyp119/vcS50dHRv7q23Nxcde7cWSEhIXr55ZfVsGFDBQYGavPmzRo1apSKiorKXHdpderUSfv379enn36qf/7zn/rLX/6iN954Q6mpqXr00UevqZ/Sio6OVk5OjtvY/fffr169emnbtm26cOGCbr31Vtcv15Iul922bZt69eqlFi1a6OOPP5avb+n+Gby43y59/itZu3atDh06pJSUlGLbvv32Wy1dulTvvPOO23h4eLg6duxY7PNSyup69gmUBwIK4GENGzbUtm3b1LVr12JHLX6pXr16Kioq0v79+92Omuzevfuqz7Fq1SqdOHFCn3zyiduJlwcOHPh1xZdSeHi4Bg8erMGDB+v06dPq1KmTXnrppXINKMYYHTx4UG3atCm2zd/f3+3zRS4eZYmLi3Obt3//fiUkJCgiIkKff/75ZY+wlOTbb7+VJNWuXbvUj5k7d64cDofb57FcdPGE30uvupJ+vlLq/PnzpX6eS13vPoHywFs8gIf1799f33//vd59991i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W2hoqBo3bqxOnTrp448/1q5du7Rw4UKv6K28eF1A+e6773TixAnVqVNHkhQbG6vc3FxlZma65qxYsUJFRUXq0KGDa056eroKCwtdc5YvX64mTZqoRo0arjlpaWluz7V8+XLFxsaWSx/+/v5q3759scvN9uzZo3r16kn6+ReFn5+fW127d+/W4cOHXXXFxsbq66+/dvtHZ/ny5QoJCXGFn+vd26Xee+89tW3bVq1atXIb99Z9V1hYqMLCQvn4uP/4VKlSxXVkrDLsu9DQUNWuXVt79+7Vpk2b1Lt3b0l292aMUVJSkhYuXKgVK1aoQYMGbtuvV+3+/v5q27at25yioiKlpaVdc39X6600bP2ZK01v+fn56tatm/z9/bV48eJiRxYq034zP1/A4jonzNbeyl3FnZ/7s1OnTpktW7aYLVu2GEnm9ddfN1u2bDGHDh0yp06dMn/84x9NRkaGOXDggPnXv/5lbr31VtO4cWNz9uxZ1xoJCQmmTZs2Zv369ebLL780jRs3drtsLjc310RGRpqHH37YbN++3Xz00UematWqxS6b8/X1NVOmTDE7d+4048aN+9WXql6pN2OM+eSTT4yfn5955513zN69e12Xha1Zs8a1xuOPP25iYmLMihUrzKZNm0xsbKyJjY11bb94+Vm3bt3M1q1bzdKlS03t2rVLvPzs+eefNzt37jQzZszwyGXGV+vPmJ8vWaxataqZNWtWiWt4677r3Lmzad68uVm5cqX59ttvzezZs01gYKCZOXOmaw1b993Veps/f75ZuXKl2b9/v1m0aJGpV6+e6du3r9satvb2hz/8wYSGhppVq1a5XeL+448/XvfaP/roIxMQEGDmzJljvvnmGzNs2DATFhbmdiWGp3s7evSo2bJli3n33XeNJJOenm62bNliTpw44Zpj48/c1XrLy8szHTp0MC1btjT79u1zm3Pppbjett/2799vXn31VbNp0yZz6NAhs3btWtOzZ08THh7uuvzX1t7KW4UHlIuXw116GzRokPnxxx9Nt27dTO3atY2fn5+pV6+eGTp0aLEX88SJE+aBBx4wwcHBJiQkxAwePNicOnXKbc62bdtMx44dTUBAgLnhhhvMxIkTi9Uyf/58c9NNNxl/f3/TvHlzs2TJknLr7aL33nvPNGrUyAQGBppWrVqZRYsWua3x008/mSeeeMLUqFHDVK1a1dx3333m6NGjbnMOHjxounfvboKCgkytWrXMc88957r07pe1tG7d2vj7+5sbb7zRzJ49+1f1Vtr+3n77bRMUFGRyc3NLXMNb993Ro0fNI488YqKiokxgYKBp0qSJee2110xRUZFrDVv33dV6e/PNN03dunWNn5+fiYmJMS+++KLbJac291ZSX5Lc1r2etU+fPt3ExMQYf39/c9ttt5l169aVa2/jxo276hwbf+au1tvl/s5KMgcOHHCt44377fvvvzfdu3c3ERERxs/Pz9StW9c8+OCDZteuXW7r2NhbeXMY42VnvgEAgErP685BAQAAlR8BBQAAWIeAAgAArENAAQAA1iGgAAAA6xBQAACAdQgoAADAOgQUAABgHQIKAACwDgEFAABYh4ACAACs8/8BhMDcYB9BuXYAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "plt.clf()\n",
    "plt.hist(pooled_roll_off)\n",
    "plt.title(f\"median is {np.median(pooled_roll_off)}\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "47f378d0",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-09T15:38:59.800043Z",
     "start_time": "2024-01-09T15:38:59.797760Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "48.37983796296296"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "2090009 * 5 / 3600 / 60"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "319b9be2",
   "metadata": {},
   "source": [
    "# Check distributions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "1b838d38",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-10T15:06:11.041655Z",
     "start_time": "2024-01-10T15:06:11.040018Z"
    }
   },
   "outputs": [],
   "source": [
    "input_folder = \"/app/suno/data/high_freq\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "f92ccadc",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-10T15:06:45.481905Z",
     "start_time": "2024-01-10T15:06:45.479287Z"
    }
   },
   "outputs": [],
   "source": [
    "input_jsons = [f for f in os.listdir(input_folder) if f.endswith(\".json\")]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "id": "520f0e1d",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-10T15:06:50.752256Z",
     "start_time": "2024-01-10T15:06:50.750173Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2091"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(input_jsons)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "id": "f7dcb865",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-10T15:08:21.013746Z",
     "start_time": "2024-01-10T15:08:14.141846Z"
    }
   },
   "outputs": [],
   "source": [
    "all_outputs = {}\n",
    "for input_json in input_jsons:\n",
    "    with open(os.path.join(input_folder, input_json), \"r\") as fp:\n",
    "        input_dict = json.load(fp)\n",
    "    all_outputs.update(input_dict)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 179,
   "id": "6ea85873",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-10T20:14:45.711049Z",
     "start_time": "2024-01-10T20:14:44.370919Z"
    }
   },
   "outputs": [],
   "source": [
    "# for short audios, we didn't get the roll off median\n",
    "for k, v in all_outputs.items():\n",
    "    if np.isnan(v):\n",
    "        all_outputs[k] = 0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 181,
   "id": "69079e33",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-10T20:16:03.822604Z",
     "start_time": "2024-01-10T20:16:01.162275Z"
    }
   },
   "outputs": [],
   "source": [
    "# with open(\"/app/suno/data/high_freq/meta_cutoff_freq.json\", \"w\") as fp:\n",
    "#     json.dump(all_outputs, fp)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "id": "ab1eb02e",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-10T15:08:34.148771Z",
     "start_time": "2024-01-10T15:08:33.866508Z"
    }
   },
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "id": "b35787c8",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-10T15:23:42.705325Z",
     "start_time": "2024-01-10T15:23:41.306277Z"
    }
   },
   "outputs": [],
   "source": [
    "bad_k = []\n",
    "good_v = []\n",
    "for k, v in all_outputs.items():\n",
    "    if np.isnan(v):\n",
    "        bad_k.append(k)\n",
    "        good_v.append(0)\n",
    "    else:\n",
    "        good_v.append(v)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 121,
   "id": "d722e3d7",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-10T15:30:55.885529Z",
     "start_time": "2024-01-10T15:30:50.813247Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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Mhn09fVRv359DBs2DMOHD9dYkhUF56kiIqLSxnmq1Ffc3+93ulB9yZIl6NGjB5ydnQEAFy5cQEhICHx9fREXF4dx48YhNzdXfPgyERERUUWndlF15swZLF68GGPHjpW0f//99zh27Bh++eUXNG/eHGvWrGFRRURERJWG2nf/HT16tMDs4wDQrVs3HD16FADwySefiM8EJCIiIqoM1C6qTE1N8fvvvxdo//3332Fqagrg5YOSq1ev/v7ZEREREZUTap/+mzNnDsaNG4fw8HDxmqqLFy/iyJEjCAoKAvByjqfOnTtrNlMiIiJ6Z+96gToVn9pF1ahRo9C4cWOsW7cOBw4cAAA4ODjg1KlTaN++PQBgypQpms2SiIiIqIx7p3mqOnTogA4dOmg6FyIiIqJyS+1rqoiIiIioIBZVRERERBrAooqIiIhIA4pVVF29ehUqlaqkcyEiIiIqt4pVVLVs2RJPnjwBANStWxf//vtviSZFREREVN4Uq6gyNjZGXFwcACA+Pp5HrYiIiIheU6wpFfr27YvOnTvDysoKMpkMbdq0gba2dqGxfDwNERERVUbFKqo2bdqEzz77DHfv3sXEiRMxatQoPoaGiIiI6BXFnvyze/fuAICoqChMmjSJRRURERHRK9SeUX3r1q3i63/++QcAULt2bc1lRERERFQOqT1PlUqlwsKFC2FkZARbW1vY2trC2NgYixYt4gXsREREVGmpfaRq1qxZ2Lx5M5YuXSo+/+/MmTOYP38+Xrx4gSVLlmg8SSIiIqKyTu2iavv27fjhhx/Qq1cvsa158+aoVasWxo8fz6KKiIiIKiW1T/+lpKTA0dGxQLujoyNSUlI0khQRERFReaN2UeXk5IR169YVaF+3bh2cnJw0khQRERFReaP26b9ly5bB09MTx48fh6urKwAgIiICDx48wJEjRzSeIBEREVF5oPaRqs6dO+P27dvo06cPUlNTkZqais8++wyxsbH46KOPSiJHIiIiojJP7SNVAGBtbc0L0omIiIheofaRKiIiIiIqiEUVERERkQawqCIiIiLSALWKKkEQkJCQgBcvXpRUPkRERETlktpFVf369fHgwYOSyoeIiIioXFKrqNLS0kKDBg3w77//llQ+BdjZ2UEmkxVYfH19AQBdunQp0Dd27FjJGAkJCfD09IShoSHMzc0REBCA3NxcSczJkyfR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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cutoff_freqs = list(good_v)\n",
    "plt.clf()\n",
    "plt.hist(cutoff_freqs, bins=list(range(0, 22000, 100)))\n",
    "plt.text(0.1, 0.8, \"\\n\".join(f\"{100 * x} %: {np.quantile(cutoff_freqs, x):.1f}\" for x in [0.1, 0.15, 0.2, 0.3]))\n",
    "plt.xlabel(\"99% roll_off_median, hz\")\n",
    "plt.ylabel(\"number of genius linked audios\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "id": "06149cf3",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-10T15:26:03.350659Z",
     "start_time": "2024-01-10T15:26:03.348339Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'1bb5fd16-6ca4-40b2-891c-eabf900e7b5a'"
      ]
     },
     "execution_count": 114,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bad_k[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 122,
   "id": "44607f15",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-10T15:48:49.888957Z",
     "start_time": "2024-01-10T15:48:48.397679Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "214330 1344121\n"
     ]
    }
   ],
   "source": [
    "high_freq_genius = []\n",
    "low_freq_genius = []\n",
    "for test_index, data in enumerate(genius_data):\n",
    "    if 0 < all_outputs[data[\"id\"]] < 16000:\n",
    "        low_freq_genius.append(data)\n",
    "    if all_outputs[data[\"id\"]] > 19000:\n",
    "        high_freq_genius.append(data)\n",
    "print(len(low_freq_genius), len(high_freq_genius))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 135,
   "id": "89a5a6da",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-10T15:53:27.061943Z",
     "start_time": "2024-01-10T15:53:21.015706Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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4/v5+SkwMFCSFBoa6rTP19dXr7/+unmb6u2331ZRUZFef/11s8fnzTffVGBgoFJTU9WnTx/Nnz9fiYmJuvfeeyVJS5Ys0caNG8v9ulwrenIAAKikDh48KA8PD0VFRZnb6tSpo2bNmungwYOSpDvvvFMHDhzQqVOntHnzZvXs2VM9e/ZUamqqLly4oG3btqlnz55l/uw2bdo4jcP58ssv9fXXX6tWrVry8/OTn5+fgoKCdP78eR05ckS5ubk6efKkU1s9PDzUqVOn678AN4ieHACVQ2m3kXolVnw7gCqmTZs2CgoK0ubNm7V582Y999xzCg0N1QsvvKBdu3bpwoULZi9QWfj6+jr9fPbsWXXs2FHLly8vUVuvXr3rbv/NRMgBUHUQhFDNtGjRQhcvXtSOHTvMoPLjjz8qMzNTLVu2lCTZbDZ1795d7733nvbv36877rhDNWvWVH5+vl577TV16tSpRGC5Hh06dNDKlSsVHBwsf3//Umvq16+vHTt2qEePHpKkixcvKj09XR06dLjhz78e3K4CAKCSatq0qQYNGqRx48Zp69at+vLLL/XQQw/pd7/7nQYNGmTW9ezZU++8844iIyPl5+cnNzc39ejRQ8uXL7/ieJyyGj58uOrWratBgwbp008/1dGjR5Wamqo//elP+v777yVJkyZN0l//+letXbtWhw4d0h//+Efl5OSUy+dfjzL15CxevFiLFy82p4u1atVKM2fOVL9+/ST9epE3b97s9J7//u//1pIlS8yfjx07pgkTJuiTTz6Rn5+f4uLilJSUJA+P/zQlNTVVCQkJ2r9/v8LDwzVjxgyNHDnS6bgLFy7U3LlzZbfb1a5dO7366qvq0qVLWU4HAFANXc8qxK705ptvatKkSbr77rtVUFCgHj166IMPPlCNGjXMmjvvvFOFhYVOY2969uyp995777rG45SmZs2a2rJli6ZNm6Z7771XP//8s373u9+pd+/eZs/OY489ppMnTyouLk5ubm4aPXq07rnnHuXm5pZLG8rKZhiGca3F77//vtzd3dW0aVMZhqG33npLc+fO1RdffKFWrVqpZ8+euu222/TMM8+Y76lZs6Z58oWFhYqMjFRoaKjmzp2rkydPasSIERo3bpyef/55SdLRo0fVunVrjR8/XmPHjlVKSoomT56s9evXKzY2VpK0cuVKjRgxQkuWLFFU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Pz9fsbGxWrRokVnr7u6udevWacKECYqOjpavr6/i4uL0zDPPmDURERFav369pkyZopdfflkNGjTQ66+/rtjYWLNm6NChOnXqlGbOnCm73a7IyEht2LChxGBkAABQPd3QOjlVHevkwKW4RYXywNo5qIYqZJ0cAACAyoqQAwAALImQAwAALImQAwAALImQAwAALImQAwAALImQAwAALImQAwAALImQAwAALImQAwAALKlMz64CcJ14hAMAVDhCDgBUZZcHaJ5lBZi4XQUAACyJkAMAACyJkAMAACyJkAMAACyJkAMAACyJ2VXAjSptejgzXADA5Qg5wM3AujgA4HLcrgIAAJZEyAEAAJZEyAEAAJZEyAEAAJZEyAEAAJZEyAEAAJbEFHKgrJgeDgBVAj05AADAkujJAQArYQVuwERPDgAAsCRCDgAAsCRCDgAAsCRCDgAAsCRCDgAAsCRmVwHFWP8GACyFnhwAAGBJhBwAAGBJhBwAAGBJhBwAAGBJZQ45W7Zs0cCBAxUWFiabzaa1a9c67R85cqRsNpvTq2/fvk41P/30k4YPHy5/f38FBgZqzJgxOnv2rFPNnj171L17d3l7eys8PFxz5swp0ZbVq1erefPm8vb2Vps2bfTBBx+U9XQAAIBFlTnk5OXlqV27dlq4cOEVa/r27auTJ0+ar3feecdp//Dhw7V//34lJydr3bp12rJlix555BFzv8PhUJ8+fdSoUSOlp6dr7ty5mj17tpYuXWrWbNu2TX/4wx80ZswYffHFFxo8eLAGDx6sffv2lfWUAACABdkMwzCu+802m9asWaPBgweb20aOHKmcnJwSPTzFDh48qJYtW2rXrl3q1KmTJGnDhg3q37+/vv/+e4WFhWnx4sV68sknZbfb5enpKUmaPn261q5dq0OHDkmShg4dqry8PK1bt848dteuXRUZGaklS5ZcU/sdDocCAgKUm5srf3//67gCqNKYMo7qggd0wmKu9fv7pozJSU1NVXBwsJo1a6YJEyboxx9/NPelpaUpMDDQDDiSFBMTIzc3N+3YscOs6dGjhxlwJCk2NlaZmZk6c+aMWRMTE+P0ubGxsUpLS7tiu/Lz8+VwOJxeAGB5nyQ5v4BqotxDTt++ffWPf/xDKSkpeuGFF7R582b169dPhYWFkiS73a7g4GCn93h4eCgoKEh2u92sCQkJcaop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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist([np.log10(max(data[\"youtube_views\"], 1)) for data in low_freq_genius], bins=np.linspace(0, 10, 100), label=\"low freq\", alpha=0.5)\n",
    "plt.hist([np.log10(max(data[\"youtube_views\"], 1)) for data in high_freq_genius], bins=np.linspace(0, 10, 100), label=\"high freq\", alpha=0.5)\n",
    "plt.legend()\n",
    "plt.title(\"youtube views log10\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 136,
   "id": "1ccf1cc4",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-10T15:53:43.757474Z",
     "start_time": "2024-01-10T15:53:37.762468Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjkAAAGzCAYAAADNKAZOAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAAA690lEQVR4nO3dfVwVdd7/8fcBBBQERAUkUfGm1EQxSUVTsUgscmO10s0tvMmuDE2kvNvKmzazbDUrTS13td10s3YvLTU1FlMrSY2i9ZasMC0FNBWUFJAzvz/6MVdH0ASBA8Pr+XicR52Zz5n5nLE6777znRmbYRiGAAAALMbF2Q0AAABUBUIOAACwJEIOAACwJEIOAACwJEIOAACwJEIOAACwJEIOAACwJEIOAACwJEIOAACwJEIOgMs6fPiwbDabVqxY4exWSqnJvV1qxIgRatWqlbPbAOocQg4AWMC5c+c0Y8YMDRw4UP7+/r8ZAA8cOKCBAwfK29tb/v7+euCBB3TixInqaxioBm7ObgBAzdWyZUudP39e9erVc3YrpdTk3pzh5MmTeuaZZ9SiRQt16dJFW7duvWztDz/8oL59+8rX11fPPfeczp07p7/85S/as2ePdu3aJXd39+prHKhChBwAl2Wz2eTp6ensNspUk3tzhmbNmun48eMKCgrS559/rptvvvmytc8995zy8/OVlpamFi1aSJK6d++u22+/XStWrNDDDz9cXW0DVYrTVUAtsHXrVkVERMjT01Nt2rTR0qVLNXPmTNlstlK1b731lrp166b69evL399fw4YN09GjRx1qoqKi1KlTJ+3fv1/9+/dXgwYNdN1112nu3LkOdWXNe4mKilJUVFSp/ZY17+Ttt99Wt27d1LBhQ/n4+CgsLEwvv/zyZb9nUVGR/P39NXLkyFLr8vLy5OnpqSeeeOKyvUnSwYMHdc8998jf31+enp6KiIjQ+++/b64/c+aMXF1d9corr5jLTp48KRcXFzVu3FiGYZjLx44dq6CgIPP9oUOHNGTIEAUFBcnT01PNmzfXsGHDlJube9nvdDn5+fl6/PHHFRISIg8PD91www36y1/+4rB/STp//rwee+wxNWnSRA0bNtTvfvc7/fjjj7LZbJo5c6ZZ5+Hh4dDrlfz73//WXXfdZQYcSYqOjtb111+vd955p9zfBaipCDlADffll19q4MCB+umnnzRr1iyNHj1azzzzjNauXVuqdvbs2XrwwQfVrl07zZ8/X4mJiUpJSVHfvn115swZh9rTp09r4MCB6tKli+bNm6f27dtrypQp2rhxY6X0nZycrD/84Q9q1KiRXnjhBT3//POKiorSp59+etnP1KtXT7///e+1du1aFRYWOqxbu3atCgoKNGzYsMt+ft++ferZs6cOHDigqVOnat68efLy8lJcXJzWrFkjSfLz81OnTp20fft283OffPKJbDabTp06pf3795vLP/74Y/Xp00eSVFhYqJiYGH322WcaP368Fi1apIcffljfffddqWP7WwzD0O9+9zu99NJLGjhwoObPn68bbrhBkyZNUlJSkkPtiBEj9Oqrr+rOO+/UCy+8oPr16ys2NrZc+/u1H3/8UTk5OYqIiCi1rnv37vryyy8rvG2gxjEA1GiDBg0yGjRoYPz444/mskOHDhlubm7Gr/8VPnz4sOHq6mrMnj3b4fN79uwx3NzcHJb369fPkGT8/e9/N5cVFBQYQUFBxpAhQ8xlmZmZhiRj+fLlDp/t169fqT7j4+ONli1bmu8nTJhg+Pj4GBcvXizX9928ebMhyVi3bp3D8jvvvNNo3br1FXu77bbbjLCwMOPChQvmMrvdbvTq1cto166duSwhIcEIDAw03yclJRl9+/Y1AgICjMWLFxuGYRg//fSTYbPZjJdfftkwDMP48ssvDUnGu+++W67vYxilj83atWsNScazzz7rUHfPPfcYNpvN+OabbwzDMIy0tDRDkpGYmOhQN2LECEOSMWPGjDL3t3v37lLH5tJ1v/6zLzFp0iRDksPxA2ozRnKAGqy4uFj/+c9/FBcXp+DgYHN527ZtdccddzjU/u///q/sdrvuu+8+nTx50nwFBQWpXbt2+uijjxzqvb299cc//tF87+7uru7du+u7776rlN79/PyUn5+v5OTkcn3u1ltvVZMmTbR69Wpz2enTp5WcnKyhQ4de9nOnTp3Sli1bdN999+ns2bPm9//pp58UExOjQ4cO6ccff5Qk9enTR9nZ2crIyJD0y4hN37591adPH3388ceSfhndMQzDHMnx9fWVJG3evFk///xzub7TpT744AO5urrqsccec1j++OOPyzAMczRt06ZNkqRHH33UoW78+PEV3vf58+cl/XJ661Ilc5xKaoDajpAD1GA5OTk6f/68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2a/viSNJhmE4vO/Vq5e++uor8/3KlStVr149c0JxVFRUqc+Eh4eXWnapS+9h06pVq8t+5v7779f9999/2W317NnTYXuHDx++4r4rAyEHAIBa7u9//7tat26t6667Tl999ZWmTJmi++67T/Xr13d2a05FyAFKcGoMQC2VlZWl6dOnKysrS82aNdO9996r2bNnO7stpyPkwHkIFQBQKSZPnqzJkyc7u41yudKpr8rC1VUAAMCSGMlB3cCoEVAnVfVIAapOZfzZEXJQd5UVfABYQsmdfX/++ec6P/m2tvr5558llb77c3kQcoArYQQIqJVcXV3l5+dnPu+pQYMG1XZjPFwbwzD0888/KycnR35+ftf0aAhCDmq/6g4il+6P0APUSCVPzr7cgy1Rs/n5+Zl/hhVFyAEAWJLNZlOzZs0UEBCgoqIiZ7eDcqhXr16lPNyTkANcK05pATWaq6ur05+GDefgEnIAAGBJhBwAAGBJhBwAAGBJhBwAAGBJTDyGNXGjPwCo8xjJAQAAlkTIAQAAlnRNIef555+XzWZTYmKiuezChQtKSEhQ48aN5e3trSFDhig7O9vhc0eOHFFsbKwaNGiggIAATZo0SRcvXnSo2bp1q2666SZ5eHiobdu2WrFiRan9L1q0SK1atZKnp6d69OihXbt2XcvXAQAAFlLhkLN7924tXbpUnTt3dlg+ceJErVu3Tu+++662bdumY8eOafDgweb64uJixcbGqrCwUDt27NCbb76pFStWaPr06WZNZmamYmNj1b9/f6WnpysxMVEPPfSQNm/ebNasXr1aSUlJmjFjhr744gt16dJFMTEx3L4bAABIqmDIOXfunIYPH6433nhDjRo1Mpfn5ubqr3/9q+bPn69bb71V3bp10/Lly7Vjxw599tlnkqQPP/xQ+/fv11tvvaXw8HDdcccd+vOf/6xFixapsLBQkrRkyRKFhoZq3rx56tChg8aNG6d77rlHL730krmv+fPna8yYMRo5cqQ6duyoJUuWqEGDBvrb3/52LccDAABYRIVCTkJCgmJjYxUdHe2wPC0tTUVFRQ7L27dvrxYtWig1NVWSlJqaqrCwMAUGBpo1MTExysvL0759+8yaS7cdExNjbqOwsFBpaWkONS4uLoqOjjZrylJQUKC8vDyHF1AlPprj+AIAVLtyX0L+9ttv64svvtDu3btLrcvK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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist([np.log10(max(data[\"genius_views\"], 1)) for data in low_freq_genius], bins=np.linspace(0, 10, 100), label=\"low freq\", alpha=0.5)\n",
    "plt.hist([np.log10(max(data[\"genius_views\"], 1)) for data in high_freq_genius], bins=np.linspace(0, 10, 100), label=\"high freq\", alpha=0.5)\n",
    "plt.legend()\n",
    "plt.title(\"genius views log10\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 140,
   "id": "b9e28984",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-10T15:58:16.703351Z",
     "start_time": "2024-01-10T15:58:16.701022Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'id': '83210715-3221-456b-bb64-b026c5a99493',\n",
       " 'original_id': 'dgxzBYXFe90',\n",
       " 'audio_filepath': 's3://suno-data/datasets/harvest/genius_hq/audio/dgxzBYXFe90.webm',\n",
       " 'duration_s': 154,\n",
       " 'lyrics': '[Chorus]\\nSok pénzem van, 10-20-30 NFT\\nBitcoinból 30 Teslát vehetnék\\nForró csajszi, mindkét szeme csodaszép\\nHidd el baby neked mindent engednék\\nHuh, neked mindent engednék\\nKülönleges bevetés\\n1-2 órás csevegés\\nSnapchat, piszkos képek\\nTested én most kérem\\n[Verse 1]\\nFlashback, visszaemlékszem erre-arra\\nNyáron hány csaj volt levarrva\\nHány emlék van kitakarva\\nAha, rosszlány, mint egy oroszlán ne nézz gorombán\\nÉn bebasztam\\nLeszarom de elbasztam\\nAz airpodsom elhagytam, yeah\\nAz airpodsom elhagytam\\n[?], mеgvan a szíved helye tе\\nAz ő teste az enyémet teljesen belepte\\n140-el autópályán menjen a Passat\\nKérlek többet, hogy ne bassz át\\nElveszem tőled a labdát\\nPak, pak, pak zsákolok párat\\nHa ha ha nevetek arról\\nNevetek arról a storyról\\nAmit hallottam arról a paliról\\nNem tudom mit gondolhatnak a csajok arról a paliról\\nAnnak a csajnak a teste a strandon olyan mint egy parabola\\nKérlek ne törj darabokra, kérlek ne törj darabokra\\nSzívem ezer darabos puzzle, itt a hangulat is lehül\\nA söröm meg estig behül, az ölembe új csaj beül\\n\\n[Pre-Chorus]\\nMegjött a tavasz dagad a\\nElőttem túl hosszú az éjszaka\\nTúl sokat bulizunk sok a panasz\\nTúl hangosak vagyunk sok a panasz\\nTele a terasz, mm mm\\nMindenki bebasz, mm mm\\nHa gondod van szevasz, mm mm\\nHa gondod van szevasz\\n\\n\\n[Chorus]\\nSok pénzem van, 10-20-30 NFT\\nBitcoinból 30 Teslát vehetnék\\nForró csajszi, mindkét szeme csodaszép\\nHidd el baby neked mindent engednék\\nHuh, neked mindent engednék\\nKülönleges bevetés\\n1-2 órás csevegés\\nSnapchat, piszkos képek\\nTested én most kérem',\n",
       " 'lang': 'hu',\n",
       " 'tags': [1434, 4105],\n",
       " 'genius_views': 146,\n",
       " 'youtube_views': 27566,\n",
       " 'tags_text': ['Rap Genius', 'Rage'],\n",
       " 'genius_slug': '2roo-bitcoin-lyrics',\n",
       " 'youtube_title': '2roo - Bitcoin',\n",
       " 'youtube_uploader_id': '@OnTheLow',\n",
       " 'youtube_channel_id': 'UCKWw6H8AuWPH7queVfvei_A'}"
      ]
     },
     "execution_count": 140,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "low_freq_genius[1000]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 142,
   "id": "fa814cba",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-10T17:20:24.977044Z",
     "start_time": "2024-01-10T16:50:21.478754Z"
    }
   },
   "outputs": [],
   "source": [
    "# lol this takes half an hour to load...\n",
    "youtube_data = read_jsonl(\"/app/suno/data/high_freq/youtube_metas.jsonl\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 143,
   "id": "bf57c98f",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-10T17:20:24.982336Z",
     "start_time": "2024-01-10T17:20:24.979516Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2705405"
      ]
     },
     "execution_count": 143,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(youtube_data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 149,
   "id": "2d837ae8",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-10T19:54:13.685496Z",
     "start_time": "2024-01-10T19:54:12.104551Z"
    }
   },
   "outputs": [],
   "source": [
    "youtube_data_dict = {data[\"id\"]: data.get(\"meta\", {}) for data in youtube_data}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 176,
   "id": "0cfb4c80",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-10T20:08:33.768640Z",
     "start_time": "2024-01-10T20:08:33.764672Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'id': 'ogZKdk8TdOE',\n",
       " 'title': 'dreaming',\n",
       " 'thumbnail': 'https://i.ytimg.com/vi_webp/ogZKdk8TdOE/maxresdefault.webp',\n",
       " 'description': 'Provided to YouTube by DistroKid\\n\\ndreaming · 1-800-lost · Jade Alice\\n\\nOh! If I could only have you\\n\\n℗ 1-800-lost X Jade Alice\\n\\nReleased on: 2020-05-29\\n\\nAuto-generated by YouTube.',\n",
       " 'uploader': '1-800-lost X Jade Alice - Topic',\n",
       " 'uploader_id': 'UCNiYRmax6WEeZChaYJlEzFQ',\n",
       " 'uploader_url': 'http://www.youtube.com/channel/UCNiYRmax6WEeZChaYJlEzFQ',\n",
       " 'channel_id': 'UCNiYRmax6WEeZChaYJlEzFQ',\n",
       " 'channel_url': 'https://www.youtube.com/channel/UCNiYRmax6WEeZChaYJlEzFQ',\n",
       " 'duration': 229,\n",
       " 'view_count': 27900,\n",
       " 'average_rating': None,\n",
       " 'age_limit': 0,\n",
       " 'webpage_url': 'https://www.youtube.com/watch?v=ogZKdk8TdOE',\n",
       " 'categories': ['Music'],\n",
       " 'tags': ['1-800-lost',\n",
       "  'Jade Alice',\n",
       "  'Oh! If I could only have you',\n",
       "  'dreaming'],\n",
       " 'playable_in_embed': True,\n",
       " 'live_status': 'not_live',\n",
       " 'release_timestamp': None,\n",
       " '_format_sort_fields': ['quality',\n",
       "  'res',\n",
       "  'fps',\n",
       "  'hdr:12',\n",
       "  'source',\n",
       "  'vcodec:vp9.2',\n",
       "  'channels',\n",
       "  'acodec',\n",
       "  'lang',\n",
       "  'proto'],\n",
       " 'automatic_captions': {},\n",
       " 'subtitles': {},\n",
       " 'album': 'Oh! If I could only have you',\n",
       " 'artist': '1-800-lost, Jade Alice',\n",
       " 'track': 'dreaming',\n",
       " 'release_date': None,\n",
       " 'release_year': None,\n",
       " 'comment_count': None,\n",
       " 'chapters': None,\n",
       " 'like_count': 763,\n",
       " 'channel': '1-800-lost X Jade Alice - Topic',\n",
       " 'channel_follower_count': 177,\n",
       " 'upload_date': '20200528',\n",
       " 'creator': '1-800-lost, Jade Alice',\n",
       " 'alt_title': 'dreaming',\n",
       " 'availability': 'public',\n",
       " 'original_url': 'https://www.youtube.com/watch?v=ogZKdk8TdOE',\n",
       " 'webpage_url_basename': 'watch',\n",
       " 'webpage_url_domain': 'youtube.com',\n",
       " 'extractor': 'youtube',\n",
       " 'extractor_key': 'Youtube',\n",
       " 'playlist': None,\n",
       " 'playlist_index': None,\n",
       " 'display_id': 'ogZKdk8TdOE',\n",
       " 'fulltitle': 'dreaming',\n",
       " 'duration_string': '3:49',\n",
       " 'is_live': False,\n",
       " 'was_live': False,\n",
       " 'requested_subtitles': None,\n",
       " '_has_drm': None,\n",
       " 'requested_downloads': [{'asr': 48000,\n",
       "   'filesize': 3868727,\n",
       "   'format_id': '251',\n",
       "   'format_note': 'medium',\n",
       "   'source_preference': -1,\n",
       "   'audio_channels': 2,\n",
       "   'quality': 3.0,\n",
       "   'has_drm': False,\n",
       "   'tbr': 135.033,\n",
       "   'url': 'https://rr2---sn-ab5l6nrs.googlevideo.com/videoplayback?expire=1684460223&ei=X35mZIjRJZG_gwPrzoUo&ip=94.176.83.27&id=o-AKY7bf4g-PIvUQU0QyMUWZxKUp4jZApHtIx2t4CCG7hQ&itag=251&source=youtube&requiressl=yes&mh=m-&mm=31%2C29&mn=sn-ab5l6nrs%2Csn-ab5sznzy&ms=au%2Crdu&mv=u&mvi=2&pl=20&gcr=us&spc=qEK7B0rCRVEp8NcPikxikrCozbri_4w&vprv=1&svpuc=1&mime=audio%2Fwebm&gir=yes&clen=3868727&dur=229.201&lmt=1589921760097876&mt=1684437617&fvip=3&keepalive=yes&fexp=24007246&c=ANDROID&txp=2311222&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cgcr%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRQIgfKWudIFXkr2ZF7g76tKwer7g0coLKp9ttZN4rYvwqPACIQCgh9Gyc2nOaUFCm2MWAIUCEZ2lYHHOjr4VyPLm2hrudw%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl&lsig=AG3C_xAwRQIgCPaDPnTgp5WRVUJOB0VSkurMyzBjE1hfi2pJBiaDgN4CIQD75sJ3wsq0aiA1ZusSR5y27kUvWXPhmN-ccw_LujGqqg%3D%3D',\n",
       "   'language_preference': -1,\n",
       "   'ext': 'webm',\n",
       "   'vcodec': 'none',\n",
       "   'acodec': 'opus',\n",
       "   'abr': 135.033,\n",
       "   'protocol': 'http_dash_segments',\n",
       "   'fragments': [{'url': 'https://rr2---sn-ab5l6nrs.googlevideo.com/videoplayback?expire=1684460223&ei=X35mZIjRJZG_gwPrzoUo&ip=94.176.83.27&id=o-AKY7bf4g-PIvUQU0QyMUWZxKUp4jZApHtIx2t4CCG7hQ&itag=251&source=youtube&requiressl=yes&mh=m-&mm=31%2C29&mn=sn-ab5l6nrs%2Csn-ab5sznzy&ms=au%2Crdu&mv=u&mvi=2&pl=20&gcr=us&spc=qEK7B0rCRVEp8NcPikxikrCozbri_4w&vprv=1&svpuc=1&mime=audio%2Fwebm&gir=yes&clen=3868727&dur=229.201&lmt=1589921760097876&mt=1684437617&fvip=3&keepalive=yes&fexp=24007246&c=ANDROID&txp=2311222&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cgcr%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRQIgfKWudIFXkr2ZF7g76tKwer7g0coLKp9ttZN4rYvwqPACIQCgh9Gyc2nOaUFCm2MWAIUCEZ2lYHHOjr4VyPLm2hrudw%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl&lsig=AG3C_xAwRQIgCPaDPnTgp5WRVUJOB0VSkurMyzBjE1hfi2pJBiaDgN4CIQD75sJ3wsq0aiA1ZusSR5y27kUvWXPhmN-ccw_LujGqqg%3D%3D&range=0-3868727'}],\n",
       "   'container': 'webm_dash',\n",
       "   'resolution': 'audio only',\n",
       "   'http_headers': {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36',\n",
       "    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n",
       "    'Accept-Language': 'en-us,en;q=0.5',\n",
       "    'Sec-Fetch-Mode': 'navigate'},\n",
       "   'audio_ext': 'webm',\n",
       "   'video_ext': 'none',\n",
       "   'format': '251 - audio only (medium)',\n",
       "   'epoch': 1684438623,\n",
       "   '_filename': '/data/suno/data/harvest/genius_hq/audio/ogZKdk8TdOE.webm',\n",
       "   '__postprocessors': [],\n",
       "   '__real_download': True,\n",
       "   '__finaldir': '/data/suno/data/harvest/genius_hq/audio',\n",
       "   'filepath': '/data/suno/data/harvest/genius_hq/audio/ogZKdk8TdOE.webm',\n",
       "   '__write_download_archive': True}],\n",
       " 'asr': 48000,\n",
       " 'filesize': 3868727,\n",
       " 'format_id': '251',\n",
       " 'format_note': 'medium',\n",
       " 'source_preference': -1,\n",
       " 'fps': None,\n",
       " 'audio_channels': 2,\n",
       " 'height': None,\n",
       " 'quality': 3.0,\n",
       " 'has_drm': False,\n",
       " 'tbr': 135.033,\n",
       " 'url': 'https://rr2---sn-ab5l6nrs.googlevideo.com/videoplayback?expire=1684460223&ei=X35mZIjRJZG_gwPrzoUo&ip=94.176.83.27&id=o-AKY7bf4g-PIvUQU0QyMUWZxKUp4jZApHtIx2t4CCG7hQ&itag=251&source=youtube&requiressl=yes&mh=m-&mm=31%2C29&mn=sn-ab5l6nrs%2Csn-ab5sznzy&ms=au%2Crdu&mv=u&mvi=2&pl=20&gcr=us&spc=qEK7B0rCRVEp8NcPikxikrCozbri_4w&vprv=1&svpuc=1&mime=audio%2Fwebm&gir=yes&clen=3868727&dur=229.201&lmt=1589921760097876&mt=1684437617&fvip=3&keepalive=yes&fexp=24007246&c=ANDROID&txp=2311222&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cgcr%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRQIgfKWudIFXkr2ZF7g76tKwer7g0coLKp9ttZN4rYvwqPACIQCgh9Gyc2nOaUFCm2MWAIUCEZ2lYHHOjr4VyPLm2hrudw%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl&lsig=AG3C_xAwRQIgCPaDPnTgp5WRVUJOB0VSkurMyzBjE1hfi2pJBiaDgN4CIQD75sJ3wsq0aiA1ZusSR5y27kUvWXPhmN-ccw_LujGqqg%3D%3D',\n",
       " 'width': None,\n",
       " 'language': None,\n",
       " 'language_preference': -1,\n",
       " 'preference': None,\n",
       " 'ext': 'webm',\n",
       " 'vcodec': 'none',\n",
       " 'acodec': 'opus',\n",
       " 'dynamic_range': None,\n",
       " 'abr': 135.033,\n",
       " 'protocol': 'http_dash_segments',\n",
       " 'fragments': [{'url': 'https://rr2---sn-ab5l6nrs.googlevideo.com/videoplayback?expire=1684460223&ei=X35mZIjRJZG_gwPrzoUo&ip=94.176.83.27&id=o-AKY7bf4g-PIvUQU0QyMUWZxKUp4jZApHtIx2t4CCG7hQ&itag=251&source=youtube&requiressl=yes&mh=m-&mm=31%2C29&mn=sn-ab5l6nrs%2Csn-ab5sznzy&ms=au%2Crdu&mv=u&mvi=2&pl=20&gcr=us&spc=qEK7B0rCRVEp8NcPikxikrCozbri_4w&vprv=1&svpuc=1&mime=audio%2Fwebm&gir=yes&clen=3868727&dur=229.201&lmt=1589921760097876&mt=1684437617&fvip=3&keepalive=yes&fexp=24007246&c=ANDROID&txp=2311222&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cgcr%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRQIgfKWudIFXkr2ZF7g76tKwer7g0coLKp9ttZN4rYvwqPACIQCgh9Gyc2nOaUFCm2MWAIUCEZ2lYHHOjr4VyPLm2hrudw%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl&lsig=AG3C_xAwRQIgCPaDPnTgp5WRVUJOB0VSkurMyzBjE1hfi2pJBiaDgN4CIQD75sJ3wsq0aiA1ZusSR5y27kUvWXPhmN-ccw_LujGqqg%3D%3D&range=0-3868727'}],\n",
       " 'container': 'webm_dash',\n",
       " 'resolution': 'audio only',\n",
       " 'aspect_ratio': None,\n",
       " 'http_headers': {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36',\n",
       "  'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n",
       "  'Accept-Language': 'en-us,en;q=0.5',\n",
       "  'Sec-Fetch-Mode': 'navigate'},\n",
       " 'audio_ext': 'webm',\n",
       " 'video_ext': 'none',\n",
       " 'format': '251 - audio only (medium)',\n",
       " 'epoch': 1684438625,\n",
       " '_type': 'video',\n",
       " '_version': {'version': '2023.03.04',\n",
       "  'current_git_head': None,\n",
       "  'release_git_head': '392389b7df7b818f794b231f14dc396d4875fbad',\n",
       "  'repository': 'yt-dlp/yt-dlp'}}"
      ]
     },
     "execution_count": 176,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "youtube_data_dict[low_freq_genius[42][\"original_id\"]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "a12b5bf5",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-10T19:58:03.396772Z",
     "start_time": "2024-01-10T19:58:02.932640Z"
    }
   },
   "outputs": [],
   "source": [
    "low_upload_yrs = []\n",
    "for data in low_freq_genius:\n",
    "    youtube_info = youtube_data_dict.get(data[\"original_id\"], {})\n",
    "    year = youtube_info.get(\"upload_date\", \"2222\")[:4]\n",
    "    low_upload_yrs.append(year)\n",
    "\n",
    "high_upload_yrs = []\n",
    "for data in high_freq_genius:\n",
    "    youtube_info = youtube_data_dict.get(data[\"original_id\"], {})\n",
    "    year = youtube_info.get(\"upload_date\", \"2222\")[:4]\n",
    "    high_upload_yrs.append(year)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 166,
   "id": "dc4743b7",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-10T20:01:38.456773Z",
     "start_time": "2024-01-10T20:01:33.087930Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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kBDh5+cnvv76a3H79u061z5+/Lho1qyZiI6OFkIIkZ2dLdzd3cWyZcvq1XOV8vJy8dprr4nXXntNmpaUlCRGjRolrl+/Li5dulSv+iUlJSI0NFTMmDFDmpabmys8PT2FhYWFWL58uRCibv9XFRUV4tVXXxWvvPKKNO348eMiPDxcmJubi507dwoh6v66/M9//iP69+8vevXqJfr16yfCw8NFRkZGnWrV5OLFi6Jr167inXfeEWVlZUIIIebNmye6dOlSr9dMlQsXLogOHTro/d+Gh4eLN998UwghpDBdF43d+/1w01gT0+l02Lx5MyorKzF69GgAwLPPPouoqCjMmTMHr732GsLCwqRNTXV16dIl2NvbAwCeeuopHD16FNbW1lAoFAgKCsKXX34JwPhtvdevX8fkyZMRFRWF2NhYAIC3tzccHR2RkJBQr56BO/uOXLhwAU8++aQ07cKFC/j111/h5+cHPz8/xMXF1al34M5OopcuXUJAQIBUo0+fPnjmmWegUqnw6quv4tChQ/Va3a7RaODk5CRdd3Z2xrvvvot3330XERER+Omnn+q8Ge7y5cswNzfHsmXL8Oabb8Lc3BxLly7Fr7/+Wud+gTvLYe/evXjiiScwdepUaXNAeHg4gDubKuvryJEjGDBgAN58801pmlarxdGjR+Hv74+hQ4di9+7dMDMzq/MmSoVCgZ49e8LLywuDBg3Chx9+iD/++AOjRo3CpEmT8M9//hN//fVXnWqnpKSgsrISTz31FHQ6HQYPHowPPvgA69atw/vvv4/hw4fXa3PZtWvX0KzZnZ+DDAwMxLlz59CrVy/4+/sjLCwMH3zwAQDjX/c3b97EggULMHv2bLz//vsAACcnJ/j4+GDv3r117re6iooKZGdno1OnTtK0AwcOYO/evRg4cCB69OiBxYsX1/nAivLycpw7d056X6ioqECbNm0wYMAABAUFYfbs2UhISKjTJladTodLly7B3d1dmubj44PY2FhMmTIFo0ePrtem+czMTLRo0QIbNmzAG2+8gePHj2PFihU4depUnepVV1lZie3bt6N3796YMWOG1GNkZCTKyspw7ty5etdPSkrCkCFD8NZbb0mvPWtra5w6dQqBgYGYOHEiDh48+Mj1/kCNFrHIYBqNRkyZMkVYWlqKHj16iFGjRon09HRRVlYmfvjhBxEcHCxefPFF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LbFjxw69162joyNcXFyk5dWUvRuswSIVGaRqb/uAgADRuXNnYWdnJyZNmiQ0Gs19bzNz5kzx7LPPGnQkRE31J06cKG7cuCGEEOLjjz8Wrq6uomfPnuL3338XGRkZIiYmRnTs2NGghF1T/ddff13k5uZKY6q+MV+6dEn4+PiIRYsWGfTt8n7LpnrtF154QURFRYm8vDxx+/ZtERMTI9q3b2/Qatia6oeFhel9a7z729+kSZNEaGiodHTdg5w5c0Z4eHhIa8GE0P8GHhMTI/z9/cVzzz0n0tPTxblz58S8efNEhw4dDNo0VlP9u5dr9W+aO3bsEC1bthQODg56m8/qWluIO9/OOnXqJLZu3So++OADYWVlJY4ePdrgvQshxDvvvCN69erVIMtm/fr1QqFQiK5du4q0tDQhxJ1vswkJCeLcuXN1ql/bWsK33npL9O/fX/rfM6Z29U11//d//ye6desmlEql2LZtm/jll1/EggULRLt27Qx63Ruz7HU6nejfv78YP378fdceGVL/7mUTHh4uQkJCRHZ2trh69apYuHChaNu2bZ2X/d3/j3f3OnXqVBEcHFzrEXYnT54UnTp1Ev369ROtWrUSffv2Fd9++600f8KECcLb21tERkaK8+fPiytXrog5c+aIJ554Qly9erXW3muqf/dm5erPxRdffCGaN28u7O3tDVpLbEh9Ie5shm7durX47bffxLvvviusrKzEkSNHGqT+3f+38+bNE35+frUeyNLYvRuDQeghunnzplCpVNKRDnl5eWLXrl3C0dFRqNVqceHCBb3x//73v8Xs2bOFo6OjQavXH1Q/KChIChTffPONGDp0qFAoFOLJJ58UXbp0EceOHatX/aFDh4rz58/rja+srBTBwcEiMDCw1iBhaO2lS5cKPz8/4ezsLJ555hnh5uZW796fffbZe3pPT08XM2fOFPb29gYd0ZGTkyN8fHxE165dRY8ePcTixYuledUf+1dffSWGDRsmFAqF6NGjh+jQoYNB/T+ofk0fapWVlSIyMlK0aNGi1v6NqV1ZWSmeeuop8eSTTwobGxuD3pCMqS/EndMBzJo1S7Rs2bLWAFdb/eofyHPnzjUotNW1fpWzZ8+KyMhI0bJly1o3bRj6uvn1119FWFiYsLOzE15eXqJnz54N/rqpMnnyZOHv72/QFy9D63/zzTdi0KBBwsLC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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(sorted(low_upload_yrs), label=\"low freq\", alpha=0.5)\n",
    "plt.hist(sorted(high_upload_yrs),label=\"high freq\",  alpha=0.5)\n",
    "plt.legend()\n",
    "plt.xticks(rotation=45)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 177,
   "id": "94cef450",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-10T20:08:52.338530Z",
     "start_time": "2024-01-10T20:08:49.378438Z"
    }
   },
   "outputs": [],
   "source": [
    "low_upload_feature = []\n",
    "for data in low_freq_genius:\n",
    "    youtube_info = youtube_data_dict.get(data[\"original_id\"], {})\n",
    "    year = youtube_info.get(\"asr\", 0)\n",
    "    low_upload_feature.append(year)\n",
    "\n",
    "high_upload_feature = []\n",
    "for data in high_freq_genius:\n",
    "    youtube_info = youtube_data_dict.get(data[\"original_id\"], {})\n",
    "    year = youtube_info.get(\"asr\", 0)\n",
    "    high_upload_feature.append(year)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 178,
   "id": "11c3aa6d",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-01-10T20:08:57.725871Z",
     "start_time": "2024-01-10T20:08:52.340629Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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yy+/ONdXVlam+Ph41a1bVw0aNNALL7yg/v37q0ePHhW9WwAAOCccoblIDBgwQNu2bdPnn38uPz8/jRw5Urfffrs2bdokb29v3XTTTUpLS9N9992n3377TVlZWapRo4Y2b96sFi1a6Ntvv1W7du1Us2bN09Y9YsQINWnSRAMHDlR2dna5761YsUJ+fn5avny5pJP39enatatiY2P13XffycvLS2PHjtVtt92mn376ST4+Pho/frxmzpypDz/8UC1bttT48eP16aefnvHJ6QBwyfkmxd0VuK5zgrsruGAEmovAqSDzww8/qEOHDpKkOXPmKDQ0VIsWLdL999+vTp066f3335ckrVy5UlFRUQoKClJaWppatGihtLQ0dezY8Yzrr127turWrStJCgoKKve9WrVqadq0ac5TTbNnz5bD4dC0adOcR3JmzJihunXrKi0tTbfeeqtSU1OVkJCgnj17SpKmTJmiZcuWVfh+AQDgXHHK6SKQlZUlLy8vxcTEONsaNGig5s2bKysrS5LUsWNHbdq0Sfv379e3336rTp06qVOnTkpLS1NpaalWrVqlTp06ubzt1q1bl5s3s27dOv3888+qU6eOateurdq1a6t+/fo6fvy4tm/frvz8fGVnZ5er1cvLS9HR0ee/AwAAuEAcobGI1q1bq379+vr222/17bff6rXXXlNQUJDefPNN/ec//1Fpaanz6I4ratWqVe7rwsJCtW3bVnPmzDmtb8OGDc+7fgAAKhNHaC4CLVu21IkTJ/Tvf//b2Xbw4EFt2bJF4eHhkk4+2uHGG2/UZ599po0bN+qGG25QRESEiouL9f777ys6Ovq0cHI+rr32Wm3btk2NGjXSVVddVe7l7+8vf39/BQcHl6v1xIkTysjIuOBtAwBwvgg0F4FmzZrp7rvv1uDBg/X9999r3bp1euihhxQSEqK7777b2a9Tp06aN2+eIiMjVbt2bXl4eOimm27SnDlzzjp/xlUPPvigAgICdPfdd+u7777Tzp07lZaWpqefflq//vqrJGn48OF64403tGjRIm3evFlPPPGEDh8+XCHbBwDgfFTbU04X+43u/teMGTM0fPhw3XnnnSopKdFNN92kJUuWyNvb29mnY8eOKisrKzdXplOnTvrss8/Oa/7MmdSsWVMrV67UyJEj1bNnTx05ckQhISG65ZZb5OfnJ0l67rnn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QAMAACyPQAMAACyPQAMAACyPQAMAACyPQAMAACyPQAMAACyPQAMAACyPQAMAACyPQAMAACyPQAMAACyPQAMAACyPQAMAACyPQAMAACyPQAMAACyPQAMAACyPQAMAACyPQAMAACyPQAMAACyPQAMAACyPQAMAACyPQAMAACyPQAMAACyPQAMAACyPQAMAACyPQAMAACyPQAMAACyPQAMAACyPQAMAACyPQAMAACyPQAMAACyPQAMAACyPQAMAACyPQAMAACyPQAMAACyPQAMAACyPQAMAACyPQAMAACyPQAMAACzvvALNpEmT1KRJE/n6+iomJkY//vjjH/ZPTU1V8+bNVaNGDYWGhurZZ5/V8ePHz6tgAACA/+VyoFmwYIHi4+OVlJSkNWvWqE2bNuratavy8vLO2H/u3LkaNWqUkpKSlJWVpenTp2vBggV68cUXL7h4AAAA6TwCzYQJEzR48GANHDhQ4eHhmjJlimrWrKkPP/zwjP1XrVql66+/Xn379lWTJk106623qk+fPn96VAcAAOBcuRRoSkpKlJGRobi4uN9X4OGhuLg4paenn3GZDh06KCMjwxlgduzYoSVLluj2228/63aKi4tVUFBQ7gUAAHA2Xq50PnDggMrKyhQYGFiuPTAwUJs3bz7jMn379tWBAwd0ww03yBijEydOaMiQIX94yiklJUXJycmulAYAAC5hlX6VU1paml5//XVNnjxZa9as0d///nd9+eWXevXVV8+6TEJCgvLz852vPXv2VHaZAADAwlw6QhMQECBPT0/l5uaWa8/NzVVQUNAZl3n55Zf18MMPa9CgQZKk1q1bq6ioSI899pheeukleXicnqnsdrvsdrsrpQEAgEuYS0dofHx81LZtW61YscLZ5nA4tGLFCsXGxp5xmaNHj54WWjw9PSVJxhhX6wUAADiNS0doJCk+Pl79+/dXdHS02rdvr9TUVBUVFWngwIGSpH79+ikkJEQpKSmSpO7du2vChAmKiopSTEyMfv75Z7388svq3r27M9gAAABcCJcDTe/evbV//34lJiYqJydHkZGRWrp0qXOi8O7du8sdkRk9erRsNptGjx6tvXv3qmHDhurevbtee+21insXAADgkmYzFjjvU1BQIH9/f+Xn58vPz8/d5QAAcHbfpLi7Atd1TqiU1Vbl5zfPcgIAAJZHoAEAAJZHoAEA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usv5dUlJiXnppZeMzWYzEyZMMMac/CB46aWXzNVXX21atWploqOjzdq1a91UsfUx1t3jYhzrBBpUqueee84ZaEpLS53tU6ZMMTVr1jSTJk0q1//YsWPm2LFjVVpjdVRYWGhCQkJMcnKys62kpMQYY8y6detMrVq1zJgxY9xVXrX14IMPmgEDBhhjTLmr8saOHWu8vLzM559/bow5+X+hpKTEHDhwwBw5csQttVYXjHX3uBjHOoEGleqdd94xderUMXv37jXGmHKX5yUnJ5tatWqZXbt2uau8am38+PHmsssuM4sXL3a2nfpFP3bsWBMTE2MOHjzI5fAV6MUXXzRBQUHm8OHDxpjf97cxxjz++OPmsssuc95jCRWHsV71LsaxznR6VKohQ4YoKipK9957rw4ePCgfHx8dP35ckvTYY4+pfv36PGyyAmRnZ+vHH3/UsmXLVFZWJknq2bOnYmNj9dZbb+mrr76SdPJKA+nk5LyCggL5+vpyVU0FGjhwoK644go98cQTKigokLe3t0pLSyVJgwYNkqRyTxuG6xjrF4eLcazz00WF2bp1q0aOHKmBAwfqnXfe0bZt2+Tj46OkpCQ5HA717t1bhw4dkq+vryTJbrerVq1azl88OD8//fSTYmNj9fDDD6t379665pprNH/+fIWEhOiFF16Qv7+/Ro8e7byvT2lpqXbs2KFGjRo5PxDgup9//llvvPGGEhISNG/ePB07dkxXXXWVBg0apK1bt+q5557T4cOHneM7KChIdrvdeZkrXMdYdw/LjPUqPR6Eamvjxo3G39/f3Hbbbebee+81/v7+5uabbzazZs0yxhizePFi0759exMWFmaWLVtmvv76azN69GgTFBTEKacLkJeXZ1q0aGFefPFFs337drN3717Tu3dvc/XVV5vk5GRz/Phxk5mZaYYMGWK8vLycd2GuV68eE1EvwIYNG0zdunVNx44dzU033WS8vLzMPffc47yVfmpqqmnfvr256aabzMaNG8369evN6NGjzeWXX+48/QrXMNbdw0pjnUCDC1ZcXGweeughM3jwYGfbtm3bTO/evU27du3M+++/b4wxZtOmTaZPnz6mYcOG5uqrrzbXXHONycjIcFfZ1cLGjRtNkyZNzOrVq8u1jxw50lxzzTVm3LhxxuFwmMLCQpOenm5effVVM2XKFLNt2zY3VWx9R48e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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(sorted(low_upload_feature), label=\"low freq\", alpha=0.5)\n",
    "plt.hist(sorted(high_upload_feature),label=\"high freq\",  alpha=0.5)\n",
    "plt.legend()\n",
    "plt.xticks(rotation=45)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ecbbdfe7",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.12"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
