{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "3b01d7f9",
   "metadata": {},
   "outputs": [],
   "source": [
    "import sys\n",
    "sys.path.insert(0, \"/home/georg/code/glockenspiel/suno_analytics/\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "4a711a9c",
   "metadata": {},
   "outputs": [],
   "source": [
    "import time\n",
    "import json\n",
    "from urllib.parse import quote\n",
    "import datetime\n",
    "import pandas as pd\n",
    "import boto3\n",
    "import sqlalchemy\n",
    "\n",
    "def get_secret():\n",
    "    session = boto3.session.Session()\n",
    "    client = session.client(service_name=\"secretsmanager\", region_name=\"us-east-2\")\n",
    "    get_secret_value_response = client.get_secret_value(SecretId=\"app-user-main-db-secret\")\n",
    "    secret = get_secret_value_response[\"SecretString\"]\n",
    "    return json.loads(secret)\n",
    "\n",
    "my_secrets = get_secret()\n",
    "\n",
    "engine = sqlalchemy.create_engine(\n",
    "    \"postgresql://suno:%s@suno-main-postgres-prod-analytics.cnfvffydbwvc.us-east-2.rds.amazonaws.com/suno_main\"\n",
    "    % quote(my_secrets[\"password\"]),\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "a1b3d762",
   "metadata": {},
   "outputs": [],
   "source": [
    "# # cutoff_date = \"2025-07-04 19:31:53\"\n",
    "# df = pd.read_sql_query(\n",
    "#     \"SELECT table_name FROM information_schema.tables WHERE table_schema = 'public'\",\n",
    "#     engine,\n",
    "# )\n",
    "# assert df[\"table_name\"].nunique() >= 61"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "560da53a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "=== bots_notificationhistory ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- notification_type\n",
      "- push_sent_at\n",
      "- push_period_end\n",
      "- user_id\n",
      "\n",
      "=== bots_cliplineage ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- parent_id\n",
      "- relationship\n",
      "- clip_id\n",
      "\n",
      "=== bots_genreanalytics ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- genre\n",
      "- ditto_vector\n",
      "- is_platform_genre\n",
      "- image_url\n",
      "- ditto_v2_vector\n",
      "\n",
      "=== growth_adsuser ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- idfa\n",
      "- idfa_source\n",
      "- user_id\n",
      "\n",
      "=== bots_userprofilepin ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- clip_id\n",
      "- relative_index\n",
      "- user_id\n",
      "\n",
      "=== bots_customfreecreditlimit ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- free_credits_limit\n",
      "- duration_since_signup_in_days\n",
      "- user_id\n",
      "\n",
      "=== video_videohook ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- original_clip\n",
      "- status\n",
      "- title\n",
      "- start_clip_timestamp\n",
      "- end_clip_timestamp\n",
      "- rendered_video_s3_id\n",
      "- rendered_video_preview_s3_id\n",
      "- thumbnail_image_s3_id\n",
      "- raw_video_upload_id\n",
      "- user_id\n",
      "- is_test\n",
      "- allow_comments\n",
      "- caption\n",
      "- show_lyrics\n",
      "- content_rating\n",
      "- content_rating_tags\n",
      "- video_duration\n",
      "- video_streaming_resolutions\n",
      "- is_deleted\n",
      "- rendered_watermarked_video_s3_id\n",
      "\n",
      "=== growth_usershare ===\n",
      "- created_at\n",
      "- updated_at\n",
      "- id\n",
      "- source\n",
      "- platform\n",
      "- content_id\n",
      "- content_type\n",
      "- sharer_id\n",
      "- content_owner_id\n",
      "\n",
      "=== bots_groupedusernotification ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- type\n",
      "- content_id\n",
      "- sender_id_1\n",
      "- sender_id_2\n",
      "- count\n",
      "- is_read\n",
      "- is_active\n",
      "- last_operation_at\n",
      "- sent_at\n",
      "- read_at\n",
      "- user_id\n",
      "- sender_id_3\n",
      "- secondary_content_id\n",
      "\n",
      "=== music_player_playbarstate ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- playbar_state\n",
      "- song_index\n",
      "- song_play_time\n",
      "- repeat_state\n",
      "- action_time\n",
      "- song_ids_in_queue\n",
      "- playlist_context\n",
      "- device_context\n",
      "- device_id\n",
      "- device_type\n",
      "- user_id\n",
      "- volume\n",
      "- context_id\n",
      "- context_type\n",
      "\n",
      "=== moderation_rules ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- entity_type\n",
      "- entity_id\n",
      "- capability\n",
      "- status\n",
      "- reason\n",
      "- expires_at\n",
      "- created_by\n",
      "- shadow_mode\n",
      "\n",
      "=== bots_generatedlyrics ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- interaction_type\n",
      "- resulted_in_error\n",
      "- is_complete\n",
      "- lyrics_request_id\n",
      "- prompt_text\n",
      "- model_name\n",
      "- create_session_token\n",
      "- model_generated_title\n",
      "- model_generated_lyrics\n",
      "- model_generated_tags\n",
      "- title_used\n",
      "- lyrics_used\n",
      "- tags_used\n",
      "- create_custom_used_model_output\n",
      "- generation_request_id\n",
      "- user_id\n",
      "- selected_for_ab\n",
      "- context_lyrics_edit\n",
      "- context_lyrics_prefix\n",
      "- context_lyrics_suffix\n",
      "- infill_undone\n",
      "\n",
      "=== oauth2_provider_grant ===\n",
      "- id\n",
      "- code\n",
      "- expires\n",
      "- redirect_uri\n",
      "- scope\n",
      "- application_id\n",
      "- user_id\n",
      "- created\n",
      "- updated\n",
      "- code_challenge\n",
      "- code_challenge_method\n",
      "- nonce\n",
      "- claims\n",
      "\n",
      "=== bots_userdeleterequest ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- persist_user_id\n",
      "- is_deleted\n",
      "- deleted_at\n",
      "- user_id\n",
      "- clerk_id\n",
      "- username\n",
      "- discord_uid\n",
      "- is_operated_by_admin\n",
      "- email\n",
      "\n",
      "=== oauth2_provider_application ===\n",
      "- id\n",
      "- client_id\n",
      "- redirect_uris\n",
      "- client_type\n",
      "- authorization_grant_type\n",
      "- client_secret\n",
      "- name\n",
      "- user_id\n",
      "- skip_authorization\n",
      "- created\n",
      "- updated\n",
      "- algorithm\n",
      "- post_logout_redirect_uris\n",
      "- hash_client_secret\n",
      "- allowed_origins\n",
      "\n",
      "=== oauth2_provider_idtoken ===\n",
      "- id\n",
      "- jti\n",
      "- expires\n",
      "- scope\n",
      "- created\n",
      "- updated\n",
      "- application_id\n",
      "- user_id\n",
      "\n",
      "=== oauth2_provider_accesstoken ===\n",
      "- id\n",
      "- token\n",
      "- expires\n",
      "- scope\n",
      "- application_id\n",
      "- user_id\n",
      "- created\n",
      "- updated\n",
      "- source_refresh_token_id\n",
      "- id_token_id\n",
      "- token_checksum\n",
      "\n",
      "=== bots_clipparent ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- clip_id\n",
      "- non_owned_parent_clip_id\n",
      "- owned_parent_clip_id\n",
      "\n",
      "=== oauth2_provider_refreshtoken ===\n",
      "- id\n",
      "- token\n",
      "- access_token_id\n",
      "- application_id\n",
      "- user_id\n",
      "- created\n",
      "- updated\n",
      "- revoked\n",
      "- token_family\n",
      "\n",
      "=== bots_radiostationstats ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- num_likes\n",
      "- num_live_user\n",
      "- play_count\n",
      "- radio_id\n",
      "\n",
      "=== bots_radiostationreaction ===\n",
      "- id\n",
      "- reaction_type\n",
      "- radio_id\n",
      "- user_id\n",
      "\n",
      "=== recommendations_usertouserengagement ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- user_id\n",
      "- engage_user_id\n",
      "- total_score\n",
      "- relationship\n",
      "- p_date\n",
      "\n",
      "=== bots_userhcaptchahistory ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- token\n",
      "- passed\n",
      "- score\n",
      "- ip_address\n",
      "- hcaptcha_response\n",
      "- user_id\n",
      "\n",
      "=== bots_school ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- name\n",
      "- country\n",
      "- domain\n",
      "\n",
      "=== bots_revcatevent ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- event_id\n",
      "- app_id\n",
      "- app_user_id\n",
      "- transaction_id\n",
      "- type\n",
      "- payload\n",
      "- result\n",
      "- presented_offering_id\n",
      "- product_id\n",
      "\n",
      "=== bots_usageplan ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- level\n",
      "- name\n",
      "- monthly_price_usd\n",
      "- features\n",
      "- stripe_product_id\n",
      "- stripe_annual_price_id\n",
      "- stripe_monthly_price_id\n",
      "- daily_credits\n",
      "- monthly_credits\n",
      "- annual_price_usd\n",
      "- plan_key\n",
      "\n",
      "=== bots_projectclip ===\n",
      "- id\n",
      "- relative_index\n",
      "- pinned\n",
      "- updated_at\n",
      "- clip_id\n",
      "- project_id\n",
      "- updated_by_id\n",
      "- user_id\n",
      "- created_session_id\n",
      "\n",
      "=== bots_dummymigrationtestingmodel ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- test_field\n",
      "\n",
      "=== bots_playlistclip ===\n",
      "- id\n",
      "- relative_index\n",
      "- updated_at\n",
      "- clip_id\n",
      "- playlist_id\n",
      "- updated_by_id\n",
      "- created_session_id\n",
      "\n",
      "=== bots_onetimefreeusage ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- free_cover_generations_used\n",
      "- free_cover_generations_limit\n",
      "- free_persona_generations_used\n",
      "- free_persona_generations_limit\n",
      "- user_id\n",
      "- free_web_remasters_limit\n",
      "- free_web_remasters_used\n",
      "- free_mobile_remasters_limit\n",
      "- free_mobile_remasters_used\n",
      "- free_mobile_v4_gens_limit\n",
      "- free_mobile_v4_gens_used\n",
      "- free_web_v4_gens_limit\n",
      "- free_web_v4_gens_used\n",
      "\n",
      "=== bots_personalizedplaylist ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- playlist_type\n",
      "- owner_user_id\n",
      "- playlist_id\n",
      "- user_id\n",
      "\n",
      "=== auth_group ===\n",
      "- id\n",
      "- name\n",
      "\n",
      "=== bots_collabplaylist ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- name\n",
      "- description\n",
      "- image_s3_id\n",
      "- is_public\n",
      "- is_collaborative\n",
      "- version_number\n",
      "- is_discover_playlist\n",
      "- upvote_count\n",
      "- dislike_count\n",
      "- play_count\n",
      "- skip_count\n",
      "- flag_count\n",
      "- is_public_approved\n",
      "- playlist_type\n",
      "- is_trashed\n",
      "- creation_source\n",
      "- created_session_id\n",
      "- user_id\n",
      "\n",
      "=== auth_permission ===\n",
      "- id\n",
      "- name\n",
      "- content_type_id\n",
      "- codename\n",
      "\n",
      "=== auth_user_groups ===\n",
      "- id\n",
      "- user_id\n",
      "- group_id\n",
      "\n",
      "=== bots_actionlogging ===\n",
      "- id\n",
      "- email\n",
      "- discord_id\n",
      "- action_type\n",
      "- action_message\n",
      "- clips\n",
      "- timestamp\n",
      "- user_id\n",
      "\n",
      "=== bots_affiliate ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- affiliate_code\n",
      "- is_active\n",
      "- first_subscribe_at\n",
      "- user_id\n",
      "\n",
      "=== bots_clipalignment ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- clip_id\n",
      "- history_clip_id\n",
      "- history_end_seconds\n",
      "- clip_start_seconds\n",
      "- future_clip_id\n",
      "- clip_end_seconds\n",
      "- future_start_seconds\n",
      "\n",
      "=== bots_appversionupdate ===\n",
      "- id\n",
      "- updated_at\n",
      "- app_name\n",
      "- platform\n",
      "- version\n",
      "- version_type\n",
      "- action_type\n",
      "- created_at\n",
      "\n",
      "=== bots_clipcommentban ===\n",
      "- id\n",
      "- reason\n",
      "- created_at\n",
      "- expires_at\n",
      "- banned_user_id\n",
      "- clip_id\n",
      "\n",
      "=== bots_blockedpayments ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- fingerprint\n",
      "- type\n",
      "- email\n",
      "- username\n",
      "\n",
      "=== bots_botjail ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- username\n",
      "- status\n",
      "- total_jailed_count\n",
      "- latest_jailed_reason\n",
      "- latest_jailed_at\n",
      "- latest_released_at\n",
      "- total_copycat_violation_count\n",
      "- latest_copycat_violation_at\n",
      "- total_api_violation_count\n",
      "- api_counter\n",
      "- latest_api_violation_at\n",
      "- total_hcaptcha_violation_count\n",
      "- hcaptcha_score\n",
      "- latest_hcaptcha_violation_at\n",
      "- user_id\n",
      "- copycat_name\n",
      "- user_ip\n",
      "- api_attribution\n",
      "\n",
      "=== bots_clipdiscordmessage ===\n",
      "- id\n",
      "- discord_message_id\n",
      "- created_at\n",
      "- clip_id\n",
      "- discord_channel_id\n",
      "- discord_guild_id\n",
      "- discord_is_dm\n",
      "\n",
      "=== moderation_rule_enforcement_logs ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- entity_type\n",
      "- entity_id\n",
      "- capability\n",
      "- shadow_mode\n",
      "- was_applied\n",
      "- rule_status\n",
      "- expires_at\n",
      "\n",
      "=== bots_clipcaption ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- clip_id\n",
      "- caption\n",
      "- raw_mentions\n",
      "\n",
      "=== bots_contest ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- name\n",
      "- type\n",
      "- description\n",
      "- start_time\n",
      "- end_time\n",
      "- submissions_playlist_id\n",
      "- can_download_remixes\n",
      "\n",
      "=== bots_commentban ===\n",
      "- reason\n",
      "- created_at\n",
      "- expires_at\n",
      "- banned_user_id\n",
      "- is_released\n",
      "- id\n",
      "- updated_at\n",
      "\n",
      "=== bots_clipprompt ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- name\n",
      "- description\n",
      "- clip_id\n",
      "- user_id\n",
      "- is_public\n",
      "- string_tags\n",
      "\n",
      "=== bots_commentreport ===\n",
      "- id\n",
      "- updated_at\n",
      "- created_at\n",
      "- reason\n",
      "- comment_id\n",
      "- user_id\n",
      "\n",
      "=== bots_contestwinnernotification ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- contest_name\n",
      "- is_read\n",
      "- is_active\n",
      "- sent_at\n",
      "- read_at\n",
      "- clip_id\n",
      "- user_id\n",
      "\n",
      "=== bots_dailytheme ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- theme\n",
      "- date\n",
      "\n",
      "=== bots_mobileusageplan ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- product_id\n",
      "- subscription_period_type\n",
      "- usage_plan_id\n",
      "- app_store\n",
      "\n",
      "=== bots_generatedclip ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- time_used\n",
      "- metadata\n",
      "- user_id\n",
      "- status\n",
      "- discord_message_id\n",
      "- prompt_id\n",
      "- request_id\n",
      "- is_generated\n",
      "- s3_id\n",
      "- upvote_count\n",
      "- batch_index\n",
      "- model_name\n",
      "- prompt_text\n",
      "- daily_theme_id\n",
      "- is_deleted\n",
      "- image_s3_id\n",
      "- is_public\n",
      "- dislike_count\n",
      "- flag_count\n",
      "- play_count\n",
      "- skip_count\n",
      "- title\n",
      "- slug\n",
      "- creation_source\n",
      "- allow_comments\n",
      "- is_hidden\n",
      "- display_tags\n",
      "\n",
      "=== bots_generationrequest ===\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- status\n",
      "- time_used\n",
      "- discord_message_id\n",
      "- batch_size\n",
      "- model_name\n",
      "- metadata\n",
      "- prompt_id\n",
      "- user_id\n",
      "- is_deleted\n",
      "\n",
      "=== bots_periodcreditusage ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- period_anchor\n",
      "- credits_used\n",
      "- period_credit_limit\n",
      "- extra_credits_balance\n",
      "- user_id\n",
      "- period_end\n",
      "- stripe_subscription_id\n",
      "- plan_level\n",
      "- extra_credits_used\n",
      "- usage_plan_id\n",
      "- revcat_subscription_id\n",
      "- is_active\n",
      "- period_extra_credit_limit\n",
      "- subscription_period_type\n",
      "\n",
      "=== bots_generatedplaylist ===\n",
      "- id\n",
      "- type\n",
      "- tag\n",
      "- updated_at\n",
      "- playlist_id\n",
      "\n",
      "=== bots_iosinvitepromocodeusage ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- user_country\n",
      "- promo_code\n",
      "- redemption_status\n",
      "- user_id\n",
      "\n",
      "=== bots_iosinvitepromocode ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- promo_code\n",
      "- redeemed_promo_code\n",
      "- user_id\n",
      "- admitted_at\n",
      "- user_country\n",
      "- waitlisted_at\n",
      "\n",
      "=== bots_iosinvitereward ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- credits_granted\n",
      "- granted_at\n",
      "- reward_type\n",
      "- user_id\n",
      "\n",
      "=== bots_persona ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- root_clip_id\n",
      "- name\n",
      "- description\n",
      "- image_s3_id\n",
      "- user_id\n",
      "- is_suno_persona\n",
      "- is_trashed\n",
      "- clip_id\n",
      "- is_public\n",
      "- is_public_approved\n",
      "- upvote_count\n",
      "- follower_count\n",
      "- created_session_id\n",
      "- clip_count\n",
      "\n",
      "=== bots_personafollow ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- followed_persona_id\n",
      "- following_user_id\n",
      "\n",
      "=== bots_personaclip ===\n",
      "- id\n",
      "- clip_id\n",
      "- persona_id\n",
      "- created_at\n",
      "- updated_at\n",
      "- user_id\n",
      "- created_session_id\n",
      "\n",
      "=== bots_playlistanalytics ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- ditto_vector\n",
      "- playlist_id\n",
      "- user_id\n",
      "\n",
      "=== bots_remixcontestsoundclash ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- duration\n",
      "- clip_id\n",
      "- user_id\n",
      "- is_base_clip\n",
      "\n",
      "=== bots_projectinvite ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- invited_email\n",
      "- status\n",
      "- invited_by_user_id\n",
      "- invited_user_id\n",
      "- project_id\n",
      "\n",
      "=== bots_profilefollow ===\n",
      "- id\n",
      "- updated_at\n",
      "- created_at\n",
      "- followed_profile_id\n",
      "- following_profile_id\n",
      "\n",
      "=== bots_project ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- name\n",
      "- description\n",
      "- image_s3_id\n",
      "- is_trashed\n",
      "- is_public\n",
      "- user_id\n",
      "- created_session_id\n",
      "\n",
      "=== bots_radiopromptchat ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- prompt\n",
      "- role\n",
      "- radio_id\n",
      "- user_id\n",
      "- instrumental\n",
      "- is_ready\n",
      "- should_gen\n",
      "- search_keywords\n",
      "- created_session_id\n",
      "\n",
      "=== bots_purchaseinfo ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- stripe_id\n",
      "- purchase_type\n",
      "- amount\n",
      "- user_id\n",
      "- status\n",
      "- client_secret\n",
      "- revcat_id\n",
      "\n",
      "=== bots_radiostation ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- name\n",
      "- description\n",
      "- image_s3_id\n",
      "- prompt\n",
      "- is_liked\n",
      "- last_listened_at\n",
      "- playlist_id\n",
      "- user_id\n",
      "- is_live\n",
      "- is_suno_hosted\n",
      "- query_term\n",
      "- created_session_id\n",
      "\n",
      "=== bots_sessionhistory ===\n",
      "- session_id\n",
      "- session_type\n",
      "- user_id\n",
      "- city\n",
      "- country\n",
      "- ip\n",
      "- created_at\n",
      "- updated_at\n",
      "- expire_time\n",
      "- length_in_sec\n",
      "- properties\n",
      "- client_creation_time\n",
      "- client_expire_time\n",
      "- platform\n",
      "\n",
      "=== bots_similarclips ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- clip_id\n",
      "- vector\n",
      "- similar_clip_ids\n",
      "\n",
      "=== bots_staffpickplaylist ===\n",
      "- created_at\n",
      "- updated_at\n",
      "- id\n",
      "- name\n",
      "- tags\n",
      "- image_url\n",
      "- playlist_id\n",
      "- redirect_url\n",
      "\n",
      "=== bots_uncategorizedpayments ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- charge_id\n",
      "- type\n",
      "- email\n",
      "- username\n",
      "\n",
      "=== bots_collabplaylistclip ===\n",
      "- id\n",
      "- relative_index\n",
      "- updated_at\n",
      "- created_session_id\n",
      "- clip_id\n",
      "- collab_playlist_id\n",
      "- updated_by_id\n",
      "\n",
      "=== bots_usercaptchastate ===\n",
      "- id\n",
      "- captcha_required\n",
      "- failed_last_token_validation\n",
      "- last_hcaptcha_score\n",
      "- last_captcha_completed_at\n",
      "- gens_since_last_captcha\n",
      "- state_checks_since_last_gen\n",
      "- user_id\n",
      "- total_interactive_challenges_completed\n",
      "- created_at\n",
      "- updated_at\n",
      "\n",
      "=== social_followingfeedactivity ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- entity_id\n",
      "- entity_type\n",
      "- activity_type\n",
      "- feed_timestamp\n",
      "- followed_user_id\n",
      "- following_user_id\n",
      "- activity_id\n",
      "\n",
      "=== bots_userprofile ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- creation_vector\n",
      "- listening_vector\n",
      "- user_id\n",
      "\n",
      "=== recommendations_usersongfeedback ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- feedback_type\n",
      "- feedback_reasons\n",
      "- custom_reason\n",
      "- is_current\n",
      "- clip_id\n",
      "- user_id\n",
      "- is_deleted\n",
      "- entity_id\n",
      "\n",
      "=== bots_userjail ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- status\n",
      "- reason\n",
      "- source\n",
      "- user_id\n",
      "- counter\n",
      "- hcaptcha_score\n",
      "- is_bot_by_reactions\n",
      "\n",
      "=== bots_usermobiledevicetoken ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- registration_token\n",
      "- registration_token_timestamp\n",
      "- user_id\n",
      "\n",
      "=== bots_usernotification ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- type\n",
      "- source_id\n",
      "- is_read\n",
      "- is_active\n",
      "- group_id\n",
      "- sender_info_id\n",
      "- user_id\n",
      "- read_at\n",
      "- sent_at\n",
      "\n",
      "=== bots_userpersonareaction ===\n",
      "- id\n",
      "- loved\n",
      "- updated_at\n",
      "- persona_id\n",
      "- user_id\n",
      "\n",
      "=== bots_videoshortextra ===\n",
      "- video_id_id\n",
      "- created_at\n",
      "- updated_at\n",
      "- flag_count\n",
      "- share_count\n",
      "- download_count\n",
      "\n",
      "=== bots_videoshort ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- is_trashed\n",
      "- image_s3_id\n",
      "- video_s3_id\n",
      "- title\n",
      "- description\n",
      "- duration\n",
      "- like_count\n",
      "- dislike_count\n",
      "- play_count\n",
      "- visibility\n",
      "- moderation\n",
      "- inferred_language\n",
      "- short_key\n",
      "- original_audio_id\n",
      "- user_id\n",
      "\n",
      "=== clips_clip_tags ===\n",
      "- id\n",
      "- clip_id\n",
      "- tag_id\n",
      "\n",
      "=== bots_videoshortreaction ===\n",
      "- id\n",
      "- play_count\n",
      "- skip_count\n",
      "- flagged\n",
      "- flagged_reason\n",
      "- reaction_type\n",
      "- updated_at\n",
      "- user_id\n",
      "- video_id_id\n",
      "\n",
      "=== clips_clip ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- name\n",
      "- description\n",
      "- s3_audio_path\n",
      "- origin_type\n",
      "- created_by_id\n",
      "- metadata\n",
      "- is_processing\n",
      "- is_shared\n",
      "- string_tags\n",
      "- ext\n",
      "- source_type\n",
      "\n",
      "=== clips_aggregation_info ===\n",
      "- clip_id\n",
      "- total_play_count\n",
      "- auto_play_count\n",
      "- total_play_time\n",
      "- created_at\n",
      "- updated_at\n",
      "\n",
      "=== clips_playlist ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- name\n",
      "\n",
      "=== clips_tag ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- name\n",
      "- created_by_id\n",
      "\n",
      "=== clips_usertoken ===\n",
      "- id\n",
      "- token\n",
      "- is_active\n",
      "- user_id\n",
      "\n",
      "=== clips_team ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- name\n",
      "- description\n",
      "\n",
      "=== clips_teammembership ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- role\n",
      "- team_id\n",
      "- user_id\n",
      "\n",
      "=== bots_commentreaction ===\n",
      "- reaction_type\n",
      "- comment_id\n",
      "- user_id\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "\n",
      "=== clips_textprompt_tags ===\n",
      "- id\n",
      "- textprompt_id\n",
      "- tag_id\n",
      "\n",
      "=== bots_playlist ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- name\n",
      "- description\n",
      "- image_s3_id\n",
      "- user_id\n",
      "- is_public\n",
      "- is_discover_playlist\n",
      "- is_trashed\n",
      "- dislike_count\n",
      "- flag_count\n",
      "- is_public_approved\n",
      "- play_count\n",
      "- skip_count\n",
      "- upvote_count\n",
      "- playlist_type\n",
      "- creation_source\n",
      "- created_session_id\n",
      "- song_count\n",
      "\n",
      "=== bots_royaluser ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- royal_id\n",
      "- user_id\n",
      "\n",
      "=== growth_pricingexp20250501user ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- exp_treatment_group\n",
      "- post_exp_treatment_group\n",
      "- user_id\n",
      "\n",
      "=== django_migrations ===\n",
      "- id\n",
      "- app\n",
      "- name\n",
      "- applied\n",
      "\n",
      "=== django_content_type ===\n",
      "- id\n",
      "- app_label\n",
      "- model\n",
      "\n",
      "=== django_session ===\n",
      "- session_key\n",
      "- session_data\n",
      "- expire_date\n",
      "\n",
      "=== bots_usercommentban ===\n",
      "- reason\n",
      "- created_at\n",
      "- expires_at\n",
      "- banned_user_id\n",
      "- target_user_id\n",
      "- id\n",
      "- updated_at\n",
      "\n",
      "=== label_maker_projects ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- project_name\n",
      "- question\n",
      "- instructions\n",
      "- preference_dimensions\n",
      "- target_review_count\n",
      "- statsig_gate\n",
      "- created_by\n",
      "- enabled\n",
      "- priority\n",
      "- credits_per_annotation\n",
      "- max_annotations_per_task\n",
      "- max_annotations_per_user\n",
      "- min_review_time_seconds\n",
      "\n",
      "=== billing_creditsgranthistory ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- amount\n",
      "- activity_type\n",
      "- reference_id\n",
      "- user_id\n",
      "\n",
      "=== contests_vote ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- contest_id\n",
      "- loser_id\n",
      "- user_id\n",
      "- winner_id\n",
      "\n",
      "=== challenge_userchallenge ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- category\n",
      "- level\n",
      "- user_level_required\n",
      "- name\n",
      "- description\n",
      "- reward_credits\n",
      "- is_completed\n",
      "- goal\n",
      "- user_id\n",
      "\n",
      "=== label_maker_tasks ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- review_items\n",
      "- project_id\n",
      "\n",
      "=== label_maker_annotations ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- user_id\n",
      "- preferences\n",
      "- feedback\n",
      "- listen_time_seconds\n",
      "- total_listen_time_seconds\n",
      "- skipped\n",
      "- credits_earned\n",
      "- credits_processed\n",
      "- task_id\n",
      "\n",
      "=== bots_savedprompt ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- title\n",
      "- gpt_description_prompt\n",
      "- tags\n",
      "- negative_tags\n",
      "- lyrics\n",
      "- pinned_at\n",
      "- user_id\n",
      "- sliders\n",
      "\n",
      "=== bots_userconfig ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- shown_creation_tour\n",
      "- user_id\n",
      "- trending_song_language\n",
      "- trending_song_rankby\n",
      "- has_accepted_timbaland_terms\n",
      "- preferred_tags\n",
      "- shown_claim_username\n",
      "- has_set_remix_perm\n",
      "- creation_song_language\n",
      "\n",
      "=== growth_usershareattribution ===\n",
      "- created_at\n",
      "- updated_at\n",
      "- user_id\n",
      "- source\n",
      "- share_id\n",
      "- content_id\n",
      "- content_type\n",
      "\n",
      "=== video_gen_stockvideo ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- source\n",
      "- source_video_id\n",
      "- description\n",
      "- duration\n",
      "- width\n",
      "- height\n",
      "\n",
      "=== auth_group_permissions ===\n",
      "- id\n",
      "- group_id\n",
      "- permission_id\n",
      "\n",
      "=== bots_usercollabplaylistreaction ===\n",
      "- id\n",
      "- play_count\n",
      "- skip_count\n",
      "- flagged\n",
      "- flagged_reason\n",
      "- reaction_type\n",
      "- updated_at\n",
      "- playlist_id\n",
      "- user_id\n",
      "\n",
      "=== auth_user ===\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "- id\n",
      "- password\n",
      "- last_login\n",
      "- is_superuser\n",
      "- username\n",
      "- first_name\n",
      "- last_name\n",
      "- email\n",
      "- is_staff\n",
      "- is_active\n",
      "- date_joined\n",
      "\n",
      "=== auth_user_user_permissions ===\n",
      "- id\n",
      "- user_id\n",
      "- permission_id\n",
      "\n",
      "=== bots_creditpack ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- stripe_id\n",
      "- amount\n",
      "- price_usd\n",
      "\n",
      "=== bots_generatedplaylistoverride ===\n",
      "- id\n",
      "- override_type\n",
      "- created_at\n",
      "- clip_id\n",
      "- generated_playlist_id\n",
      "\n",
      "=== bots_invitehistory ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- invitee_reward_amount\n",
      "- inviter_reward_amount\n",
      "- invitee_id\n",
      "- inviter_id\n",
      "- is_active\n",
      "- is_recorded\n",
      "- reward_condition_met_at\n",
      "- has_sent_credit_limit_depletion_email\n",
      "- has_sent_email_to_use_credits\n",
      "- has_sent_invite_success_email\n",
      "\n",
      "=== bots_promptinspiration ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- description\n",
      "\n",
      "=== bots_userplaylistreaction ===\n",
      "- id\n",
      "- play_count\n",
      "- skip_count\n",
      "- flagged\n",
      "- flagged_reason\n",
      "- reaction_type\n",
      "- updated_at\n",
      "- playlist_id\n",
      "- user_id\n",
      "\n",
      "=== bots_userreaction ===\n",
      "- id\n",
      "- play_count\n",
      "- skip_count\n",
      "- flagged\n",
      "- flagged_reason\n",
      "- reaction_type\n",
      "- updated_at\n",
      "- clip_id\n",
      "- user_id\n",
      "- feedback_reason\n",
      "\n",
      "=== clips_clip_playlists ===\n",
      "- id\n",
      "- clip_id\n",
      "- playlist_id\n",
      "\n",
      "=== clips_textprompt ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- name\n",
      "- content\n",
      "- created_by_id\n",
      "\n",
      "=== clips_usercliprating ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- rating\n",
      "- string_tags\n",
      "- clip_id\n",
      "- user_id\n",
      "\n",
      "=== django_admin_log ===\n",
      "- id\n",
      "- action_time\n",
      "- object_id\n",
      "- object_repr\n",
      "- action_flag\n",
      "- change_message\n",
      "- content_type_id\n",
      "- user_id\n",
      "\n",
      "=== pg_stat_statements ===\n",
      "- userid\n",
      "- dbid\n",
      "- toplevel\n",
      "- queryid\n",
      "- query\n",
      "- plans\n",
      "- total_plan_time\n",
      "- min_plan_time\n",
      "- max_plan_time\n",
      "- mean_plan_time\n",
      "- stddev_plan_time\n",
      "- calls\n",
      "- total_exec_time\n",
      "- min_exec_time\n",
      "- max_exec_time\n",
      "- mean_exec_time\n",
      "- stddev_exec_time\n",
      "- rows\n",
      "- shared_blks_hit\n",
      "- shared_blks_read\n",
      "- shared_blks_dirtied\n",
      "- shared_blks_written\n",
      "- local_blks_hit\n",
      "- local_blks_read\n",
      "- local_blks_dirtied\n",
      "- local_blks_written\n",
      "- temp_blks_read\n",
      "- temp_blks_written\n",
      "- blk_read_time\n",
      "- blk_write_time\n",
      "- temp_blk_read_time\n",
      "- temp_blk_write_time\n",
      "- wal_records\n",
      "- wal_fpi\n",
      "- wal_bytes\n",
      "- jit_functions\n",
      "- jit_generation_time\n",
      "- jit_inlining_count\n",
      "- jit_inlining_time\n",
      "- jit_optimization_count\n",
      "- jit_optimization_time\n",
      "- jit_emission_count\n",
      "- jit_emission_time\n",
      "\n",
      "=== pg_stat_statements_info ===\n",
      "- dealloc\n",
      "- stats_reset\n",
      "\n",
      "=== bots_studentplaneligibleuser ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- user_id\n",
      "\n",
      "=== chat_chatmessage ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- channel_id\n",
      "- channel_type\n",
      "- chat_id\n",
      "- chat_text\n",
      "- user_avatar_url\n",
      "- user_name\n",
      "- moderation_status\n",
      "- moderation_reasons\n",
      "- user_id\n",
      "- flag_count\n",
      "\n",
      "=== chat_chatflag ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- reason\n",
      "- chat_message_id\n",
      "- user_id\n",
      "\n",
      "=== bots_contestclip ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- duration\n",
      "- is_base_clip\n",
      "- clip_id\n",
      "- contest_id\n",
      "- user_id\n",
      "- is_submitted\n",
      "- user_country\n",
      "- rating\n",
      "\n",
      "=== bots_usertrackingevent ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- has_created_song\n",
      "- user_id\n",
      "\n",
      "=== bots_discordinfo ===\n",
      "- id\n",
      "- discord_id\n",
      "- user_id\n",
      "- has_accepted_tos\n",
      "- discord_username\n",
      "- clerk_id\n",
      "- max_concurrent_generations\n",
      "- stripe_customer_id\n",
      "- stripe_subscription_id\n",
      "- subscription_status\n",
      "- subscription_anchor\n",
      "- uid\n",
      "- subscription_cancel_at\n",
      "- extra_credits_balance\n",
      "- subscription_period_end\n",
      "- subscription_plan_id\n",
      "- extra_credits_used\n",
      "- subscription_changing_to\n",
      "- subscription_period_type\n",
      "- is_on_gen_waitlist\n",
      "- is_beta_tester\n",
      "- is_merged\n",
      "- accepted_custom_mode_tos\n",
      "- accepted_custom_mode_tos_timestamp\n",
      "- display_name\n",
      "- handle\n",
      "- flagged_at\n",
      "- handle_updated_at\n",
      "- profile_description\n",
      "- avatar_image_url\n",
      "- active_subscription_platform\n",
      "- revcat_subscription_id\n",
      "- phone_number\n",
      "- secondary_email\n",
      "- birthday\n",
      "- registered_platform\n",
      "- subscription_period_paid_amount_usd\n",
      "- updated_at\n",
      "\n",
      "=== bots_clipembedding ===\n",
      "- clip_id\n",
      "- vector\n",
      "- similar_clip_ids\n",
      "- is_processing\n",
      "- lyric_semantic_embedding\n",
      "- ditto_self_sim_embedding\n",
      "- created_at\n",
      "- updated_at\n",
      "- ditto_genre_embedding\n",
      "\n",
      "=== recommendations_trendingclips ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- time_period\n",
      "- language\n",
      "- clip_ids\n",
      "- dagster_run_id\n",
      "\n",
      "=== bots_modeltype ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- major_version\n",
      "- name\n",
      "- internal_key\n",
      "- description\n",
      "- flag_name\n",
      "- display_priority\n",
      "- external_key\n",
      "- model_subtype\n",
      "- capabilities\n",
      "\n",
      "=== bots_clipshareasset ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- clip_id\n",
      "- clip_start_time\n",
      "- clip_end_time\n",
      "- config\n",
      "- s3_id\n",
      "- status\n",
      "\n",
      "=== bots_alexauserinfo ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- alexa_user_id\n",
      "- alexa_api_endpoint\n",
      "- alexa_latest_sync_token\n",
      "- user_id\n",
      "\n",
      "=== bots_studioprojectversion ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- revision\n",
      "- payload\n",
      "- project_id\n",
      "\n",
      "=== bots_feature ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- name\n",
      "- description\n",
      "\n",
      "=== bots_usageplanfeature ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- feature_id\n",
      "- usage_plan_id\n",
      "\n",
      "=== video_gen_generatedvideo ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- status\n",
      "- video_url\n",
      "- clip_id\n",
      "- user_id\n",
      "\n",
      "=== bots_studioproject ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- title\n",
      "- user_id\n",
      "- archived\n",
      "\n",
      "=== bots_twittertosonglog ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- gen_request_id\n",
      "- state\n",
      "- tweet_id\n",
      "- twitter_content\n",
      "- twitter_context\n",
      "- error_message\n",
      "- posted_tweet_id\n",
      "- image_url\n",
      "- twitter_context_json\n",
      "\n",
      "=== bots_artistnameclaim ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- artist_name\n",
      "- is_active\n",
      "- user_id\n",
      "\n",
      "=== bots_studioprojectclip ===\n",
      "- id\n",
      "- clip_id\n",
      "- studio_project_id\n",
      "\n",
      "=== bots_generatedclipextra ===\n",
      "- clip_id\n",
      "- created_at\n",
      "- updated_at\n",
      "- download_audio_count\n",
      "- download_video_count\n",
      "- share_count\n",
      "- is_public_approved\n",
      "- inferred_language\n",
      "- download_audio_wav_count\n",
      "- lyrics_copyright_metadata\n",
      "- content_rating\n",
      "- content_rating_tags\n",
      "- lyrics_copyright_v3_metadata\n",
      "- first_published_at\n",
      "- reuse_prompt_count\n",
      "- audio_snippets\n",
      "\n",
      "=== video_clipprimaryhook ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- clip\n",
      "- primary_hook_id\n",
      "\n",
      "=== video_hookreaction ===\n",
      "- id\n",
      "- reaction_type\n",
      "- hook_id\n",
      "- user_id\n",
      "- updated_at\n",
      "\n",
      "=== video_videohookstats ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- view_count\n",
      "- like_count\n",
      "- dislike_count\n",
      "- video_hook_id\n",
      "\n",
      "=== bots_userstats ===\n",
      "- id\n",
      "- display_name\n",
      "- total_clips\n",
      "- total_followers\n",
      "- total_following\n",
      "- first_onebox\n",
      "- first_custom\n",
      "- first_instrumental\n",
      "- last_login\n",
      "- last_create\n",
      "- user_id\n",
      "- total_clips_public\n",
      "- last_monthly_update\n",
      "- last_periodic_update\n",
      "- total_likes\n",
      "- total_likes_received\n",
      "- total_likes_received_till_last_month\n",
      "- total_plays\n",
      "- total_plays_received\n",
      "- total_plays_received_till_last_month\n",
      "- total_playlists\n",
      "- consecutive_days_active\n",
      "- longest_login_streak\n",
      "- consecutive_creation_streak\n",
      "- longest_creation_streak\n",
      "- top_creation_tags\n",
      "\n",
      "=== video_videosprite ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- s3_id\n",
      "- thumbnail_width\n",
      "- thumbnail_height\n",
      "- image_width\n",
      "- image_height\n",
      "- interval\n",
      "- total_frames\n",
      "- video_upload_id\n",
      "\n",
      "=== bots_clipvideo ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- clip_id\n",
      "- video_s3_id\n",
      "- is_cover\n",
      "- gif_s3_id\n",
      "- video_preview_s3_id\n",
      "- streaming_file_sizes\n",
      "\n",
      "=== bots_userblock ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- source\n",
      "- blocked_user_id\n",
      "- user_id\n",
      "\n",
      "=== video_hookcomment ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- content\n",
      "- track_time_second\n",
      "- is_deleted\n",
      "- deleted_by\n",
      "- num_likes\n",
      "- num_replies\n",
      "- raw_mentions\n",
      "- hook_id\n",
      "- parent_id\n",
      "- user_id\n",
      "\n",
      "=== video_hookcommentreaction ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- reaction_type\n",
      "- comment_id\n",
      "- user_id\n",
      "\n",
      "=== bots_videoupload ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- image_s3_id\n",
      "- video_s3_id\n",
      "- error_type\n",
      "- upload_type\n",
      "- title\n",
      "- duration\n",
      "- file_sha256\n",
      "- audio_upload_id\n",
      "- user_id\n",
      "- generated_description\n",
      "- height\n",
      "- width\n",
      "- gif_preview_s3_id\n",
      "- video_preview_s3_id\n",
      "- content_rating\n",
      "- content_rating_tags\n",
      "\n",
      "=== video_hookcommentreport ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- reason\n",
      "- comment_id\n",
      "- user_id\n",
      "\n",
      "=== moderation_warnings ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- user_id\n",
      "- reason\n",
      "- acknowledged\n",
      "- acknowledged_at\n",
      "- created_by\n",
      "- count\n",
      "\n",
      "=== moderation_entity_state_change_logs ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- entity_type\n",
      "- entity_id\n",
      "- action\n",
      "- reason\n",
      "- created_by\n",
      "- user_id\n",
      "\n",
      "=== bots_clipcomment ===\n",
      "- id\n",
      "- created_at\n",
      "- updated_at\n",
      "- content\n",
      "- track_time_second\n",
      "- is_deleted\n",
      "- deleted_by\n",
      "- num_likes\n",
      "- clip_id\n",
      "- parent_id\n",
      "- user_id\n",
      "- num_replies\n",
      "- raw_mentions\n",
      "\n",
      "=== bots_audioupload ===\n",
      "- id\n",
      "- updated_at\n",
      "- audio_s3_id\n",
      "- error_type\n",
      "- upload_type\n",
      "- created_at\n",
      "- clip_id\n",
      "- user_id\n",
      "- duration\n",
      "- has_vocal\n",
      "- image_s3_id\n",
      "- requested_clip_id\n",
      "- title\n",
      "- inferred_lyrics\n",
      "- inferred_description\n",
      "- display_tags\n"
     ]
    }
   ],
   "source": [
    "from sqlalchemy import text\n",
    "\n",
    "# Get table names\n",
    "df = pd.read_sql_query(\n",
    "    \"SELECT table_name FROM information_schema.tables WHERE table_schema = 'public'\",\n",
    "    engine,\n",
    ")\n",
    "\n",
    "table_names = df[\"table_name\"].tolist()\n",
    "\n",
    "# Dict to store samples\n",
    "samples = {}\n",
    "\n",
    "# Loop through each table\n",
    "for table in table_names:\n",
    "    print(f\"\\n=== {table} ===\")\n",
    "    \n",
    "    # Query 5 rows\n",
    "    sample_df = pd.read_sql_query(\n",
    "        f'SELECT * FROM \"{table}\" LIMIT 5;',\n",
    "        engine,\n",
    "    )\n",
    "    \n",
    "    # Print columns\n",
    "    for col in sample_df.columns:\n",
    "        print(f\"- {col}\")\n",
    "    \n",
    "    # Store in dict\n",
    "    samples[table] = sample_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "id": "36b1a9ee",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>created_at</th>\n",
       "      <th>updated_at</th>\n",
       "      <th>playbar_state</th>\n",
       "      <th>song_index</th>\n",
       "      <th>song_play_time</th>\n",
       "      <th>repeat_state</th>\n",
       "      <th>action_time</th>\n",
       "      <th>song_ids_in_queue</th>\n",
       "      <th>playlist_context</th>\n",
       "      <th>device_context</th>\n",
       "      <th>device_id</th>\n",
       "      <th>device_type</th>\n",
       "      <th>user_id</th>\n",
       "      <th>volume</th>\n",
       "      <th>context_id</th>\n",
       "      <th>context_type</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>bfbdc2cb-2be0-4a04-857e-baba141b1ae9</td>\n",
       "      <td>2025-03-26 11:09:52.349261+00:00</td>\n",
       "      <td>2025-03-26 11:09:52.378415+00:00</td>\n",
       "      <td>paused</td>\n",
       "      <td>0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>no-repeat</td>\n",
       "      <td>2025-03-26 11:09:51.908000+00:00</td>\n",
       "      <td>[]</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>0f76fa90-97da-41d4-8c92-16f11fdfdaa7</td>\n",
       "      <td>Android</td>\n",
       "      <td>75275039</td>\n",
       "      <td>100</td>\n",
       "      <td>0850f31d-1f6c-428d-884b-af36c84c8dca</td>\n",
       "      <td>song_recommendations</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>42cad374-2eb3-4603-95df-ba101761db23</td>\n",
       "      <td>2025-03-21 17:41:16.048727+00:00</td>\n",
       "      <td>2025-03-21 18:05:51.830577+00:00</td>\n",
       "      <td>paused</td>\n",
       "      <td>0</td>\n",
       "      <td>98.172117</td>\n",
       "      <td>no-repeat</td>\n",
       "      <td>2025-03-21 18:05:51.199000+00:00</td>\n",
       "      <td>[9e940068-6c26-4b7e-b333-c909b4d5e00e, e32fffc...</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>612c6e72-e30d-43f2-b781-7ed8f7b424ac</td>\n",
       "      <td>Windows</td>\n",
       "      <td>75005489</td>\n",
       "      <td>100</td>\n",
       "      <td>default</td>\n",
       "      <td>workspace</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>f1eeef31-e47e-41ea-85ef-644c5bdb8982</td>\n",
       "      <td>2025-04-07 01:59:04.342358+00:00</td>\n",
       "      <td>2025-04-07 01:59:16.052607+00:00</td>\n",
       "      <td>paused</td>\n",
       "      <td>0</td>\n",
       "      <td>10.259176</td>\n",
       "      <td>no-repeat</td>\n",
       "      <td>2025-04-07 01:59:15.931000+00:00</td>\n",
       "      <td>[80ec4366-acb8-4427-864a-440ff82b1597, 90c80e3...</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>d1ec0a17-0aa2-4f35-9726-a7dfe49d4d2f</td>\n",
       "      <td>iOS</td>\n",
       "      <td>80068789</td>\n",
       "      <td>100</td>\n",
       "      <td>default</td>\n",
       "      <td>workspace</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>646ac3a6-23ac-46bf-bcf7-ff46e68dd4a0</td>\n",
       "      <td>2025-03-24 09:33:19.190131+00:00</td>\n",
       "      <td>2025-03-24 09:33:42.187334+00:00</td>\n",
       "      <td>paused</td>\n",
       "      <td>0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>no-repeat</td>\n",
       "      <td>2025-03-24 09:33:38.672000+00:00</td>\n",
       "      <td>[36aacc89-ae7f-44ea-b00a-bada8741178f, d39ff74...</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>cf06c687-4d5d-4665-b43a-c86b8c3fc60e</td>\n",
       "      <td>Android</td>\n",
       "      <td>77376330</td>\n",
       "      <td>100</td>\n",
       "      <td>default</td>\n",
       "      <td>workspace</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>71a2a456-347c-49bb-bbbe-255ef651f4d2</td>\n",
       "      <td>2025-03-21 04:57:04.985426+00:00</td>\n",
       "      <td>2025-03-21 04:57:14.644862+00:00</td>\n",
       "      <td>paused</td>\n",
       "      <td>0</td>\n",
       "      <td>8.324648</td>\n",
       "      <td>no-repeat</td>\n",
       "      <td>2025-03-21 04:57:14.881000+00:00</td>\n",
       "      <td>[1375f826-1766-4f95-9e22-9a3e4b1f7cb3, 82a66bf...</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>ba6943ae-d81b-4ae7-9eef-907c70b679be</td>\n",
       "      <td>Android</td>\n",
       "      <td>76791404</td>\n",
       "      <td>100</td>\n",
       "      <td>default</td>\n",
       "      <td>workspace</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                     id                       created_at  \\\n",
       "0  bfbdc2cb-2be0-4a04-857e-baba141b1ae9 2025-03-26 11:09:52.349261+00:00   \n",
       "1  42cad374-2eb3-4603-95df-ba101761db23 2025-03-21 17:41:16.048727+00:00   \n",
       "2  f1eeef31-e47e-41ea-85ef-644c5bdb8982 2025-04-07 01:59:04.342358+00:00   \n",
       "3  646ac3a6-23ac-46bf-bcf7-ff46e68dd4a0 2025-03-24 09:33:19.190131+00:00   \n",
       "4  71a2a456-347c-49bb-bbbe-255ef651f4d2 2025-03-21 04:57:04.985426+00:00   \n",
       "\n",
       "                        updated_at playbar_state  song_index  song_play_time  \\\n",
       "0 2025-03-26 11:09:52.378415+00:00        paused           0        0.000000   \n",
       "1 2025-03-21 18:05:51.830577+00:00        paused           0       98.172117   \n",
       "2 2025-04-07 01:59:16.052607+00:00        paused           0       10.259176   \n",
       "3 2025-03-24 09:33:42.187334+00:00        paused           0        0.000000   \n",
       "4 2025-03-21 04:57:14.644862+00:00        paused           0        8.324648   \n",
       "\n",
       "  repeat_state                      action_time  \\\n",
       "0    no-repeat 2025-03-26 11:09:51.908000+00:00   \n",
       "1    no-repeat 2025-03-21 18:05:51.199000+00:00   \n",
       "2    no-repeat 2025-04-07 01:59:15.931000+00:00   \n",
       "3    no-repeat 2025-03-24 09:33:38.672000+00:00   \n",
       "4    no-repeat 2025-03-21 04:57:14.881000+00:00   \n",
       "\n",
       "                                   song_ids_in_queue playlist_context  \\\n",
       "0                                                 []             None   \n",
       "1  [9e940068-6c26-4b7e-b333-c909b4d5e00e, e32fffc...             None   \n",
       "2  [80ec4366-acb8-4427-864a-440ff82b1597, 90c80e3...             None   \n",
       "3  [36aacc89-ae7f-44ea-b00a-bada8741178f, d39ff74...             None   \n",
       "4  [1375f826-1766-4f95-9e22-9a3e4b1f7cb3, 82a66bf...             None   \n",
       "\n",
       "  device_context                             device_id device_type   user_id  \\\n",
       "0           None  0f76fa90-97da-41d4-8c92-16f11fdfdaa7     Android  75275039   \n",
       "1           None  612c6e72-e30d-43f2-b781-7ed8f7b424ac     Windows  75005489   \n",
       "2           None  d1ec0a17-0aa2-4f35-9726-a7dfe49d4d2f         iOS  80068789   \n",
       "3           None  cf06c687-4d5d-4665-b43a-c86b8c3fc60e     Android  77376330   \n",
       "4           None  ba6943ae-d81b-4ae7-9eef-907c70b679be     Android  76791404   \n",
       "\n",
       "   volume                            context_id          context_type  \n",
       "0     100  0850f31d-1f6c-428d-884b-af36c84c8dca  song_recommendations  \n",
       "1     100                               default             workspace  \n",
       "2     100                               default             workspace  \n",
       "3     100                               default             workspace  \n",
       "4     100                               default             workspace  "
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "samples[\"music_player_playbarstate\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "34b25e18",
   "metadata": {},
   "outputs": [],
   "source": [
    "t0 = time.time()\n",
    "df = pd.read_sql_query(\n",
    "    \"\"\"\n",
    "    SELECT \n",
    "        prompt_text,\n",
    "        COUNT(DISTINCT id) AS num_clips\n",
    "    FROM bots_generatedclip\n",
    "    WHERE\n",
    "        created_at >= '2025-06-01' AND created_at < '2025-06-02'\n",
    "        AND is_generated = TRUE\n",
    "        AND is_deleted = FALSE\n",
    "    GROUP BY prompt_text\n",
    "    ORDER BY num_clips DESC\n",
    "    \"\"\",\n",
    "    engine,\n",
    ")\n",
    "td = time.time() - t0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "753d51e8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "981.736864566803"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "td"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "eaae8bcc",
   "metadata": {},
   "outputs": [],
   "source": [
    "t0 = time.time()\n",
    "df2 = pd.read_sql_query(\n",
    "    \"\"\"\n",
    "    SELECT \n",
    "        id AS clip_id,\n",
    "        prompt_text\n",
    "    FROM bots_generatedclip\n",
    "    WHERE\n",
    "        created_at >= '2025-06-01' AND created_at < '2025-06-02'\n",
    "        AND is_generated = TRUE\n",
    "        AND is_deleted = FALSE\n",
    "    \"\"\",\n",
    "    engine,\n",
    ")\n",
    "td2 = time.time() - t0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "253ef63a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "347.49016857147217"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "td2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "c4bf3873",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "5.783333333333333"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "347/60"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "aee03904",
   "metadata": {},
   "outputs": [],
   "source": [
    "df2 = (\n",
    "    df2.groupby(\"prompt_text\")\n",
    "    .agg(num_clips=(\"clip_id\", \"nunique\"))\n",
    "    .reset_index()\n",
    "    .sort_values(\"num_clips\", ascending=False)\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "3a28aebb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>prompt_text</th>\n",
       "      <th>num_clips</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td></td>\n",
       "      <td>912160</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>548303</th>\n",
       "      <td>[Instrumental]</td>\n",
       "      <td>225739</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>129</th>\n",
       "      <td>\\n\\n</td>\n",
       "      <td>1471</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1177797</th>\n",
       "      <td>[Verse]\\noh, my love\\nMy friend you know\\nit's...</td>\n",
       "      <td>1462</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>530248</th>\n",
       "      <td>[Fade Out]</td>\n",
       "      <td>964</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>900832</th>\n",
       "      <td>[Verse]\\nFirst verse starts here..\\n\\n[Verse 2...</td>\n",
       "      <td>894</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>482455</th>\n",
       "      <td>Wheere there is desire, there iis gonna be a f...</td>\n",
       "      <td>890</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>122</th>\n",
       "      <td>\\n</td>\n",
       "      <td>889</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1306192</th>\n",
       "      <td>[instrumental]\\n[instrumental]\\n[instrumental]...</td>\n",
       "      <td>560</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>145</th>\n",
       "      <td>\\n\\n\\n\\n</td>\n",
       "      <td>509</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>454801</th>\n",
       "      <td>Verse 1 \\n[Instrumental - Quickly Escalate]\\n\\...</td>\n",
       "      <td>504</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>645439</th>\n",
       "      <td>[Intro]\\n[Verse 1]\\n[Pre-Chorus]\\n[Chorus 1]\\n...</td>\n",
       "      <td>500</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>100366</th>\n",
       "      <td></td>\n",
       "      <td>488</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>830183</th>\n",
       "      <td>[Verse]\\nAyo\\nWho that man who remove the hat?...</td>\n",
       "      <td>410</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>758539</th>\n",
       "      <td>[Verse 1]\\nShe slid through the doorway with h...</td>\n",
       "      <td>400</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>669936</th>\n",
       "      <td>[Owl hoot]\\n[Intro – close-up spoken- hearbeat...</td>\n",
       "      <td>388</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>425744</th>\n",
       "      <td>This is the truth\\n\\n[Verse ]\\nI made you with...</td>\n",
       "      <td>383</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>614756</th>\n",
       "      <td>[Intro]\\n(Welcome, initiate...)\\nYou were born...</td>\n",
       "      <td>352</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>205509</th>\n",
       "      <td>1400 feet\\n1400 feet\\n1400 feet\\n1400 feet\\n14...</td>\n",
       "      <td>304</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>561614</th>\n",
       "      <td>[Intro – 0:00–1:00]\\n\\n[Slow, panoramic synth ...</td>\n",
       "      <td>298</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                               prompt_text  num_clips\n",
       "0                                                              912160\n",
       "548303                                      [Instrumental]     225739\n",
       "129                                                   \\n\\n       1471\n",
       "1177797  [Verse]\\noh, my love\\nMy friend you know\\nit's...       1462\n",
       "530248                                          [Fade Out]        964\n",
       "900832   [Verse]\\nFirst verse starts here..\\n\\n[Verse 2...        894\n",
       "482455   Wheere there is desire, there iis gonna be a f...        890\n",
       "122                                                     \\n        889\n",
       "1306192  [instrumental]\\n[instrumental]\\n[instrumental]...        560\n",
       "145                                               \\n\\n\\n\\n        509\n",
       "454801   Verse 1 \\n[Instrumental - Quickly Escalate]\\n\\...        504\n",
       "645439   [Intro]\\n[Verse 1]\\n[Pre-Chorus]\\n[Chorus 1]\\n...        500\n",
       "100366                                                            488\n",
       "830183   [Verse]\\nAyo\\nWho that man who remove the hat?...        410\n",
       "758539   [Verse 1]\\nShe slid through the doorway with h...        400\n",
       "669936   [Owl hoot]\\n[Intro – close-up spoken- hearbeat...        388\n",
       "425744   This is the truth\\n\\n[Verse ]\\nI made you with...        383\n",
       "614756   [Intro]\\n(Welcome, initiate...)\\nYou were born...        352\n",
       "205509   1400 feet\\n1400 feet\\n1400 feet\\n1400 feet\\n14...        304\n",
       "561614   [Intro – 0:00–1:00]\\n\\n[Slow, panoramic synth ...        298"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lyrics_df.head(20)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "b2810b5d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[Intro – 0:00–1:00]\n",
      "\n",
      "[Slow, panoramic synth swell. Cold, shimmering textures drift in like distant light through fog. Deep sub-bass rumbles gently under a gated pad. No vocals yet — only emotion unfolding in slow motion.]\n",
      "\n",
      "⸻\n",
      "\n",
      "[Verse 1 – 1:01–1:45]\n",
      "\n",
      "[Kick subtly joins. A warm, pulsing bassline breathes beneath the surface. Vocals enter low, calm, and intimate — surrounded by soft atmospheric delay.]\n",
      "\n",
      "Kui mina olin veel väikene mees,\n",
      "üks helin mul helises rinna sees.\n",
      "Ja kui mina sirgusin suuremaks,\n",
      "läks helingi rinna sees kangemaks.\n",
      "\n",
      "⸻\n",
      "\n",
      "[Drop 1 – 1:46–2:35]\n",
      "\n",
      "[Full groove unfolds. Gated, layered synths pulse rhythmically. Bass grows thicker. Fragments of vocals echo through reverb (“helin… mu hing…”) — hypnotic, trance-like.]\n",
      "\n",
      "See helin mu elu ja minu hing,\n",
      "tal kitsaks on jäänud maapäälne ring.\n",
      "See helin mu elu ja minu hing,\n",
      "tal kitsaks on jäänud maapäälne ring.\n",
      "\n",
      "⸻\n",
      "\n",
      "[Bridge – 2:36–3:05]\n",
      "\n",
      "[Kick and bass pull back. Strings rise subtly. Space opens. Vocals return in a near-whisper, haunted and close.]\n",
      "\n",
      "Nüüd on see helin pea matnud mind,\n",
      "ta alla rusuks on raugenud rind.\n",
      "Kui mina olin veel väikene mees,\n",
      "üks helin mul helises rinna sees.\n",
      "\n",
      "⸻\n",
      "\n",
      "[Drop 2 – 3:06–3:55]\n",
      "\n",
      "[Drop returns — deeper and wider. Synths modulate gently. Vocal lines grow more intense. Harmony layers expand.]\n",
      "\n",
      "See helin mu elu ja minu hing,\n",
      "tal kitsaks on jäänud maapäälne ring.\n",
      "See helin mu elu ja minu hing,\n",
      "tal kitsaks on jäänud maapäälne ring.\n",
      "\n",
      "⸻\n",
      "\n",
      "[Power Chorus – 3:56–4:35]\n",
      "\n",
      "[All elements bloom. Gated synths, vocal harmonies, thick sidechained bass. Emotional climax.]\n",
      "\n",
      "Ta alla rusuks on raugenud rind.\n",
      "See helin mu elu ja minu hing,\n",
      "See helin mu elu ja minu hing,\n",
      "tal kitsaks on jäänud maapäälne ring!\n",
      "\n",
      "⸻\n",
      "\n",
      "[Outro – 4:36–5:20]\n",
      "\n",
      "[Kick fades. Synths dissolve into reverb. Only piano and ambient textures remain. Vocals return one last time — soft, nostalgic, fading into mist.]\n",
      "\n",
      "Kui mina olin veel väikene mees,\n",
      "üks helin mul helises rinna sees.\n",
      "Ja kui mina sirgusin suuremaks,\n",
      "läks helingi rinna sees kangemaks.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(lyrics_df.loc[561614][\"prompt_text\"])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "15b194ad",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "76b4dfb8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>clip_id</th>\n",
       "      <th>prompt_text</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1869069b-5f6b-4e30-bf5d-fc706cdd3d35</td>\n",
       "      <td>Verso 1:  \\nMe levanto en la mañana, con el so...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>b89c6a2c-428a-498c-90a8-86e9b83efe0f</td>\n",
       "      <td>Сьогодні випив небагато,\\nЗ друзяками посидів ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>5c5065b4-2b9b-4fba-a0c7-9c6b0e8fbd63</td>\n",
       "      <td>[Verse]\\nHow miserable life would be\\nIf black...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3648441f-4fbf-4d58-a757-e9fbc714e51c</td>\n",
       "      <td>[Instrumental]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>b1303ae2-cda2-4caf-a631-53dad56ceb65</td>\n",
       "      <td>[Verse 1]\\nChrome rims spin, got the shine so ...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                clip_id  \\\n",
       "0  1869069b-5f6b-4e30-bf5d-fc706cdd3d35   \n",
       "1  b89c6a2c-428a-498c-90a8-86e9b83efe0f   \n",
       "2  5c5065b4-2b9b-4fba-a0c7-9c6b0e8fbd63   \n",
       "3  3648441f-4fbf-4d58-a757-e9fbc714e51c   \n",
       "4  b1303ae2-cda2-4caf-a631-53dad56ceb65   \n",
       "\n",
       "                                         prompt_text  \n",
       "0  Verso 1:  \\nMe levanto en la mañana, con el so...  \n",
       "1  Сьогодні випив небагато,\\nЗ друзяками посидів ...  \n",
       "2  [Verse]\\nHow miserable life would be\\nIf black...  \n",
       "3                                     [Instrumental]  \n",
       "4  [Verse 1]\\nChrome rims spin, got the shine so ...  "
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f0ea2ac3",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "57e40d02",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "aaebdc3a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "id                                 ddf3637a-e302-41a3-87e7-21837b35d48c\n",
       "created_at                             2025-06-10 03:24:27.591883+00:00\n",
       "updated_at                             2025-07-03 12:45:53.177334+00:00\n",
       "time_used                                                    116.427652\n",
       "metadata              {'tags': 'rap, rhythmic, male vocals, electron...\n",
       "user_id                                                        68830935\n",
       "status                                                         complete\n",
       "discord_message_id                                                 None\n",
       "prompt_id                                                          None\n",
       "request_id                         a14cd2a3-c828-43b0-a378-17d3feafe6a3\n",
       "is_generated                                                       True\n",
       "s3_id                              ddf3637a-e302-41a3-87e7-21837b35d48c\n",
       "upvote_count                                                         20\n",
       "batch_index                                                           0\n",
       "model_name                                        chirp-v3p5-engine-s-8\n",
       "prompt_text           [Verse]\\nЖи да ши, пишу на битах,\\nСлово остро...\n",
       "daily_theme_id                                                     None\n",
       "is_deleted                                                        False\n",
       "image_s3_id           image_video_upload_3829aacb-be43-4796-82eb-284...\n",
       "is_public                                                          True\n",
       "dislike_count                                                         0\n",
       "flag_count                                                            0\n",
       "play_count                                                          135\n",
       "skip_count                                                            0\n",
       "title                                                        Жи-ши пиши\n",
       "slug                                                               None\n",
       "creation_source                                                    None\n",
       "allow_comments                                                     True\n",
       "is_hidden                                                         False\n",
       "display_tags                                                       None\n",
       "Name: 0, dtype: object"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.iloc[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "7355ca06",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'\\n    [Verse1]\\n    绿叶轻摇，岁月静好\\n    风穿过窗，拂过陶盆的沧桑\\n    生命交织，线与枝的舞蹈\\n    坚韧与枯荣，一刹那就是永恒\\n\\n    [Verse2]\\n    鲜绿渐隐，棕黄交织\\n    叶尖轻卷，干枯中藏着秘密\\n    苔藓如茵，湿漉漉的生机\\n    悄然守护，这一角的静谧\\n\\n    [Chorus]\\n    晨光微曦，电线交织的乐章\\n    谱写着，平凡与非凡的对话\\n    岁月叶语，静听心灵的呼吸\\n    每片绿意，是对生活的执着与向往\\n    \\n\\n\\n[End]'"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.iloc[0][\"prompt_text\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "2bb9b6ed",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "4a00ca40",
   "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.14"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
