berkaygkv54 commited on
Commit
a20c02a
1 Parent(s): db1ac47
.gitignore CHANGED
@@ -2,4 +2,5 @@
2
  .env
3
  .cache
4
  __pycache__
5
- data/audio/*.wav
 
 
2
  .env
3
  .cache
4
  __pycache__
5
+ data/audio/*.wav
6
+ data_2
app.py CHANGED
@@ -9,11 +9,10 @@ import pandas as pd
9
  import json
10
  import os
11
  import smtplib, ssl
12
- from email.mime.multipart import MIMEMultipart
13
- from email.mime.text import MIMEText
14
- from email.utils import COMMASPACE, formatdate
15
  st.set_page_config(page_title="Curate me a playlist", layout="wide")
16
 
 
17
 
18
  @st.cache_data
19
  def load_data():
@@ -43,10 +42,17 @@ def send_curator(text):
43
  sender_email = os.getenv("EMAIL_ADDRESS")
44
  receiver_email = os.getenv("EMAIL_RECEIVER")
45
  password = os.getenv("EMAIL_PASSWORD")
 
 
 
 
 
 
 
46
  context = ssl.create_default_context()
47
  with smtplib.SMTP_SSL(smtp_server, port, context=context) as server:
48
  server.login(sender_email, password)
49
- server.sendmail(sender_email, receiver_email, text)
50
 
51
  print("Email sent.")
52
 
@@ -76,10 +82,10 @@ if is_clicked:
76
  # help="The top trending Streamlit apps",
77
  # validate="^https://[a-z]+\.streamlit\.app$",
78
  # max_chars=100,
79
- )
80
- },
81
- hide_index=False,
82
- use_container_width=True
83
  )
84
 
85
  form = st.form("form")
@@ -89,7 +95,7 @@ if is_clicked:
89
  playlist = [f"{k}\n" for k in dataframe.index]
90
  playlist_string = "\n".join(dataframe.index.tolist())
91
  body = f"""\
92
- Subject: Hi there
93
 
94
  Curator --> {sender}
95
  Query --> {session.text_input}
@@ -98,4 +104,6 @@ if is_clicked:
98
  {playlist_string}
99
  """
100
 
 
 
101
  is_submit = form.form_submit_button("Submit", on_click=send_curator, args=([body]))
 
9
  import json
10
  import os
11
  import smtplib, ssl
12
+ from dotenv import load_dotenv
 
 
13
  st.set_page_config(page_title="Curate me a playlist", layout="wide")
14
 
15
+ load_dotenv()
16
 
17
  @st.cache_data
18
  def load_data():
 
42
  sender_email = os.getenv("EMAIL_ADDRESS")
43
  receiver_email = os.getenv("EMAIL_RECEIVER")
44
  password = os.getenv("EMAIL_PASSWORD")
45
+ from email.mime.multipart import MIMEMultipart
46
+ from email.mime.text import MIMEText
47
+
48
+ msg = MIMEMultipart("alternative")
49
+ msg["Subject"] = "Curate me a playlist submission"
50
+ part1 = MIMEText(body, "plain")
51
+ msg.attach(part1)
52
  context = ssl.create_default_context()
53
  with smtplib.SMTP_SSL(smtp_server, port, context=context) as server:
54
  server.login(sender_email, password)
55
+ server.sendmail(sender_email, receiver_email, msg)
56
 
57
  print("Email sent.")
58
 
 
82
  # help="The top trending Streamlit apps",
83
  # validate="^https://[a-z]+\.streamlit\.app$",
84
  # max_chars=100,
85
+ )
86
+ },
87
+ hide_index=False,
88
+ use_container_width=True
89
  )
90
 
91
  form = st.form("form")
 
95
  playlist = [f"{k}\n" for k in dataframe.index]
96
  playlist_string = "\n".join(dataframe.index.tolist())
97
  body = f"""\
98
+ Subject: Curate me a playlist submission
99
 
100
  Curator --> {sender}
101
  Query --> {session.text_input}
 
104
  {playlist_string}
105
  """
106
 
107
+
108
+ print(body)
109
  is_submit = form.form_submit_button("Submit", on_click=send_curator, args=([body]))
data/json/.gitkeep ADDED
File without changes
data/json/final_track_data.json ADDED
The diff for this file is too large to render. See raw diff
 
data/json/saved_tracks.json CHANGED
@@ -0,0 +1,2562 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "artist": "Coldplay",
4
+ "track": "Sparks"
5
+ },
6
+ {
7
+ "artist": "America",
8
+ "track": "A Horse with No Name"
9
+ },
10
+ {
11
+ "artist": "Pink Floyd",
12
+ "track": "Have A Cigar - 2011 Remaster"
13
+ },
14
+ {
15
+ "artist": "MF\u00d6",
16
+ "track": "Bazen"
17
+ },
18
+ {
19
+ "artist": "Pink Floyd",
20
+ "track": "The Great Gig In The Sky - 2011 Remastered Version"
21
+ },
22
+ {
23
+ "artist": "Dire Straits",
24
+ "track": "Once Upon A Time In The West"
25
+ },
26
+ {
27
+ "artist": "Hakk\u0131 Bulut",
28
+ "track": "Ben K\u00f6yl\u00fcy\u00fcm"
29
+ },
30
+ {
31
+ "artist": "Sting",
32
+ "track": "Brand New Day"
33
+ },
34
+ {
35
+ "artist": "Pinhani",
36
+ "track": "D\u00fcnyadan Uzak"
37
+ },
38
+ {
39
+ "artist": "The Corrs",
40
+ "track": "Little Wing - MTV Unplugged Version"
41
+ },
42
+ {
43
+ "artist": "Chris Isaak",
44
+ "track": "Wicked Game"
45
+ },
46
+ {
47
+ "artist": "The Police",
48
+ "track": "Roxanne"
49
+ },
50
+ {
51
+ "artist": "Frank Sark",
52
+ "track": "Amor Mio"
53
+ },
54
+ {
55
+ "artist": "David Dallas",
56
+ "track": "Runnin'"
57
+ },
58
+ {
59
+ "artist": "mor ve \u00f6tesi",
60
+ "track": "Re"
61
+ },
62
+ {
63
+ "artist": "Fl\u00f6rt",
64
+ "track": "Biz"
65
+ },
66
+ {
67
+ "artist": "Telenova",
68
+ "track": "Bones"
69
+ },
70
+ {
71
+ "artist": "emir taha",
72
+ "track": "Huyu Suyu"
73
+ },
74
+ {
75
+ "artist": "mor ve \u00f6tesi",
76
+ "track": "G\u00fcneye Giderken"
77
+ },
78
+ {
79
+ "artist": "Replikas",
80
+ "track": "Ya\u015f Elli"
81
+ },
82
+ {
83
+ "artist": "Grover Washington, Jr.",
84
+ "track": "Just the Two of Us"
85
+ },
86
+ {
87
+ "artist": "Bob Marley & The Wailers",
88
+ "track": "Stir It Up"
89
+ },
90
+ {
91
+ "artist": "KISS",
92
+ "track": "I Was Made For Lovin' You"
93
+ },
94
+ {
95
+ "artist": "Steely Dan",
96
+ "track": "Do It Again"
97
+ },
98
+ {
99
+ "artist": "MF\u00d6",
100
+ "track": "Sak\u0131n Gelme"
101
+ },
102
+ {
103
+ "artist": "MIKA",
104
+ "track": "Relax, Take It Easy"
105
+ },
106
+ {
107
+ "artist": "Cem Karaca",
108
+ "track": "\u00c7ok Yorgunum"
109
+ },
110
+ {
111
+ "artist": "John Mayer",
112
+ "track": "New Light"
113
+ },
114
+ {
115
+ "artist": "The Weeknd",
116
+ "track": "Blinding Lights"
117
+ },
118
+ {
119
+ "artist": "Jamelia",
120
+ "track": "Stop"
121
+ },
122
+ {
123
+ "artist": "Erkut Ta\u00e7k\u0131n",
124
+ "track": "Sevmek I\u0307stiyorum"
125
+ },
126
+ {
127
+ "artist": "Estelle",
128
+ "track": "American Boy"
129
+ },
130
+ {
131
+ "artist": "Sting",
132
+ "track": "Fields Of Gold"
133
+ },
134
+ {
135
+ "artist": "Adamlar",
136
+ "track": "Mavi Ekran"
137
+ },
138
+ {
139
+ "artist": "H\u00fcseyin Bitmez",
140
+ "track": "Nazende Sevgilim"
141
+ },
142
+ {
143
+ "artist": "Pinhani",
144
+ "track": "\u0130stanbul'da"
145
+ },
146
+ {
147
+ "artist": "M\u00fcsl\u00fcm G\u00fcrses",
148
+ "track": "Hayat Berbat"
149
+ },
150
+ {
151
+ "artist": "Pink Floyd",
152
+ "track": "Brain Damage - 2011 Remastered Version"
153
+ },
154
+ {
155
+ "artist": "Z\u00fclf\u00fc Livaneli",
156
+ "track": "G\u00f6zlerin"
157
+ },
158
+ {
159
+ "artist": "David Bowie",
160
+ "track": "Fame - 2016 Remaster"
161
+ },
162
+ {
163
+ "artist": "Fl\u00f6rt",
164
+ "track": "Lan O\u011flum B\u00f6yle Olmaz"
165
+ },
166
+ {
167
+ "artist": "M\u00fcsl\u00fcm G\u00fcrses",
168
+ "track": "Affet"
169
+ },
170
+ {
171
+ "artist": "Led Zeppelin",
172
+ "track": "Stairway to Heaven - Remaster"
173
+ },
174
+ {
175
+ "artist": "Y\u00fczy\u00fczeyken Konu\u015furuz",
176
+ "track": "Dinle Beni Bi'"
177
+ },
178
+ {
179
+ "artist": "Sting",
180
+ "track": "It's Probably Me"
181
+ },
182
+ {
183
+ "artist": "Stromae",
184
+ "track": "Tous les m\u00eames"
185
+ },
186
+ {
187
+ "artist": "Steely Dan",
188
+ "track": "Kid Charlemagne"
189
+ },
190
+ {
191
+ "artist": "Ali K\u0131z\u0131ltu\u011f",
192
+ "track": "Sen Gel Diyorsun - \u00d6f \u00d6f"
193
+ },
194
+ {
195
+ "artist": "The Doors",
196
+ "track": "People Are Strange"
197
+ },
198
+ {
199
+ "artist": "Tame Impala",
200
+ "track": "The Less I Know The Better"
201
+ },
202
+ {
203
+ "artist": "Nur Yoldas",
204
+ "track": "Sultan-\u0131 Yegah"
205
+ },
206
+ {
207
+ "artist": "Okay Temiz",
208
+ "track": "East Breeze"
209
+ },
210
+ {
211
+ "artist": "Teoman",
212
+ "track": "Saat 03:00"
213
+ },
214
+ {
215
+ "artist": "No Land",
216
+ "track": "Niy\u0259 Bel\u0259 Uzundur Bu Yollar"
217
+ },
218
+ {
219
+ "artist": "Okan Kaya",
220
+ "track": "Katip Arzuhalim"
221
+ },
222
+ {
223
+ "artist": "Queen",
224
+ "track": "Who Wants To Live Forever - Remastered 2011"
225
+ },
226
+ {
227
+ "artist": "Erkin Koray",
228
+ "track": "Hayat Katar\u0131"
229
+ },
230
+ {
231
+ "artist": "Cem Karaca",
232
+ "track": "Dadalo\u011flu"
233
+ },
234
+ {
235
+ "artist": "The Derek Trucks Band",
236
+ "track": "Crow Jane"
237
+ },
238
+ {
239
+ "artist": "Y\u00fczy\u00fczeyken Konu\u015furuz",
240
+ "track": "Ne Farkeder"
241
+ },
242
+ {
243
+ "artist": "Loredana Bert\u00e8",
244
+ "track": "J'adore Venise"
245
+ },
246
+ {
247
+ "artist": "B\u00fcy\u00fck Ev Ablukada",
248
+ "track": "HO\u015e\u00c7AKAL KADAR"
249
+ },
250
+ {
251
+ "artist": "Dario Moreno",
252
+ "track": "Her Ak\u015fam \"Sarho\u015f\""
253
+ },
254
+ {
255
+ "artist": "B\u00fcy\u00fck Ev Ablukada",
256
+ "track": "En G\u00fczel Yerinde Evin"
257
+ },
258
+ {
259
+ "artist": "Talking Heads",
260
+ "track": "Psycho Killer - 2005 Remaster"
261
+ },
262
+ {
263
+ "artist": "Black Sabbath",
264
+ "track": "Planet Caravan"
265
+ },
266
+ {
267
+ "artist": "\u00d6zdemir Erdo\u011fan",
268
+ "track": "Gurbet"
269
+ },
270
+ {
271
+ "artist": "Edwin Starr",
272
+ "track": "War"
273
+ },
274
+ {
275
+ "artist": "Boney M.",
276
+ "track": "Rasputin - Live"
277
+ },
278
+ {
279
+ "artist": "Pinhani",
280
+ "track": "Ben Nas\u0131 B\u00fcy\u00fck Adam Olucam"
281
+ },
282
+ {
283
+ "artist": "Eric Clapton",
284
+ "track": "River of Tears - Live at Staples Center, Los Angeles, CA, 8/18 - 19/2001"
285
+ },
286
+ {
287
+ "artist": "\u00dcmit Say\u0131n",
288
+ "track": "Hicran"
289
+ },
290
+ {
291
+ "artist": "Sufle",
292
+ "track": "K\u00f6pr\u00fcalt\u0131"
293
+ },
294
+ {
295
+ "artist": "Duman",
296
+ "track": "Seni Kendime Saklad\u0131m"
297
+ },
298
+ {
299
+ "artist": "Ray LaMontagne",
300
+ "track": "You Are the Best Thing"
301
+ },
302
+ {
303
+ "artist": "Adamlar",
304
+ "track": "Sar\u0131l\u0131r\u0131m Birine"
305
+ },
306
+ {
307
+ "artist": "Adamlar",
308
+ "track": "Zombi"
309
+ },
310
+ {
311
+ "artist": "Jimi Hendrix",
312
+ "track": "Who Knows - Live At Fillmore East, 1970 / 50th Anniversary"
313
+ },
314
+ {
315
+ "artist": "Queen",
316
+ "track": "These Are The Days Of Our Lives"
317
+ },
318
+ {
319
+ "artist": "Argent",
320
+ "track": "Lothlorien"
321
+ },
322
+ {
323
+ "artist": "Teoman",
324
+ "track": "Hayalperest"
325
+ },
326
+ {
327
+ "artist": "Herbie Hancock",
328
+ "track": "Cantaloupe Island - Remastered 1999/Rudy Van Gelder Edition"
329
+ },
330
+ {
331
+ "artist": "Jim Croce",
332
+ "track": "Time In A Bottle"
333
+ },
334
+ {
335
+ "artist": "Paul Desmond",
336
+ "track": "Autumn Leaves"
337
+ },
338
+ {
339
+ "artist": "Queen",
340
+ "track": "Radio Ga Ga - Remastered 2011"
341
+ },
342
+ {
343
+ "artist": "Commodores",
344
+ "track": "Easy"
345
+ },
346
+ {
347
+ "artist": "Buena Vista Social Club",
348
+ "track": "Tiene Sabor"
349
+ },
350
+ {
351
+ "artist": "Red Hot Chili Peppers",
352
+ "track": "By the Way"
353
+ },
354
+ {
355
+ "artist": "Andrea Motis",
356
+ "track": "Dream a Little Dream of Me"
357
+ },
358
+ {
359
+ "artist": "Brad Mehldau",
360
+ "track": "Hey Joe"
361
+ },
362
+ {
363
+ "artist": "Santana",
364
+ "track": "Maria Maria (feat. The Product G&B)"
365
+ },
366
+ {
367
+ "artist": "M\u00fcsl\u00fcm G\u00fcrses",
368
+ "track": "Bir \u00d6m\u00fcr Yetmez"
369
+ },
370
+ {
371
+ "artist": "Led Zeppelin",
372
+ "track": "Immigrant Song - 1990 Remaster"
373
+ },
374
+ {
375
+ "artist": "Mert F\u0131rat",
376
+ "track": "Bana G\u00f6re De\u011fil"
377
+ },
378
+ {
379
+ "artist": "Bar\u0131\u015f Man\u00e7o",
380
+ "track": "D\u00f6nence"
381
+ },
382
+ {
383
+ "artist": "Nirvana",
384
+ "track": "The Man Who Sold The World"
385
+ },
386
+ {
387
+ "artist": "Queen",
388
+ "track": "We Will Rock You - Remastered 2011"
389
+ },
390
+ {
391
+ "artist": "Muse",
392
+ "track": "Time is Running Out"
393
+ },
394
+ {
395
+ "artist": "Rage Against The Machine",
396
+ "track": "Killing In The Name"
397
+ },
398
+ {
399
+ "artist": "Buddy Guy",
400
+ "track": "Mustang Sally (feat. Jeff Beck)"
401
+ },
402
+ {
403
+ "artist": "Sedef Seb\u00fcktekin",
404
+ "track": "Kayboluyorum (S\u00fct)"
405
+ },
406
+ {
407
+ "artist": "Alice Merton",
408
+ "track": "No Roots"
409
+ },
410
+ {
411
+ "artist": "Kovacs",
412
+ "track": "It's the Weekend"
413
+ },
414
+ {
415
+ "artist": "Duman",
416
+ "track": "K\u00f6pekler"
417
+ },
418
+ {
419
+ "artist": "Eric Clapton",
420
+ "track": "Nobody Knows You When You're Down and Out - Acoustic; Live at MTV Unplugged, Bray Film Studios, Windsor, England, UK, 1/16/1992; 2013 Remaster"
421
+ },
422
+ {
423
+ "artist": "Elvis Presley",
424
+ "track": "Fever"
425
+ },
426
+ {
427
+ "artist": "B\u00fclent Orta\u00e7gil",
428
+ "track": "Bu Su Hi\u00e7 Durmaz"
429
+ },
430
+ {
431
+ "artist": "Athena",
432
+ "track": "Ka\u00e7ak"
433
+ },
434
+ {
435
+ "artist": "Dawn Penn",
436
+ "track": "You Don't Love Me - No No No"
437
+ },
438
+ {
439
+ "artist": "Pink Floyd",
440
+ "track": "High Hopes - 2011 Remaster"
441
+ },
442
+ {
443
+ "artist": "Wild Cherry",
444
+ "track": "Play That Funky Music"
445
+ },
446
+ {
447
+ "artist": "Athena",
448
+ "track": "Ad\u0131m\u0131z Miskindir Bizim"
449
+ },
450
+ {
451
+ "artist": "B\u00fclent Orta\u00e7gil",
452
+ "track": "Bozburun"
453
+ },
454
+ {
455
+ "artist": "TOTO",
456
+ "track": "Hold the Line"
457
+ },
458
+ {
459
+ "artist": "Feyyaz Yigit",
460
+ "track": "Samsun'lu De\u011filim"
461
+ },
462
+ {
463
+ "artist": "Muddy Waters",
464
+ "track": "Mannish Boy"
465
+ },
466
+ {
467
+ "artist": "Wes Montgomery",
468
+ "track": "In Your Own Sweet Way"
469
+ },
470
+ {
471
+ "artist": "Blonde Redhead",
472
+ "track": "For the Damaged Coda"
473
+ },
474
+ {
475
+ "artist": "Eagles",
476
+ "track": "Hotel California - 2013 Remaster"
477
+ },
478
+ {
479
+ "artist": "MF\u00d6",
480
+ "track": "Bu A\u015fk Olur Mu"
481
+ },
482
+ {
483
+ "artist": "MF\u00d6",
484
+ "track": "A\u015fk\u0131n Kenar\u0131ndan"
485
+ },
486
+ {
487
+ "artist": "Gipsy Kings",
488
+ "track": "Un Amor"
489
+ },
490
+ {
491
+ "artist": "Black Sabbath",
492
+ "track": "Paranoid"
493
+ },
494
+ {
495
+ "artist": "Santana",
496
+ "track": "She's Not There"
497
+ },
498
+ {
499
+ "artist": "Janis Joplin",
500
+ "track": "Kozmic Blues"
501
+ },
502
+ {
503
+ "artist": "Cannonball Adderley",
504
+ "track": "Autumn Leaves"
505
+ },
506
+ {
507
+ "artist": "Julian Lage",
508
+ "track": "Nocturne"
509
+ },
510
+ {
511
+ "artist": "Son Feci Bisiklet",
512
+ "track": "Bu K\u0131z"
513
+ },
514
+ {
515
+ "artist": "Eric Clapton",
516
+ "track": "Hold on I'm Coming"
517
+ },
518
+ {
519
+ "artist": "Amason",
520
+ "track": "California Dreamin'"
521
+ },
522
+ {
523
+ "artist": "Ajda Pekkan",
524
+ "track": "D\u00fc\u015f\u00fcnme Hi\u00e7"
525
+ },
526
+ {
527
+ "artist": "Selda Ba\u011fcan",
528
+ "track": "Dostum Dostum"
529
+ },
530
+ {
531
+ "artist": "Eric Clapton",
532
+ "track": "Old Love - Acoustic; Live at MTV Unplugged, Bray Film Studios, Windsor, England, UK, 1/16/1992; 2013 Remaster"
533
+ },
534
+ {
535
+ "artist": "\u00d6zdemir Erdo\u011fan",
536
+ "track": "A\u00e7 Kap\u0131y\u0131 Gir \u0130\u00e7eri"
537
+ },
538
+ {
539
+ "artist": "Frazey Ford",
540
+ "track": "One More Cup Of Coffee"
541
+ },
542
+ {
543
+ "artist": "Cem Karaca",
544
+ "track": "Sevda Ku\u015fun Kanad\u0131nda"
545
+ },
546
+ {
547
+ "artist": "Joe Walsh",
548
+ "track": "Life's Been Good"
549
+ },
550
+ {
551
+ "artist": "Foo Fighters",
552
+ "track": "The Sky Is A Neighborhood"
553
+ },
554
+ {
555
+ "artist": "Gary Clark Jr.",
556
+ "track": "When My Train Pulls In - Live"
557
+ },
558
+ {
559
+ "artist": "D\u00fc\u015f Soka\u011f\u0131 Sakinleri",
560
+ "track": "Huzun Kovan Kusu"
561
+ },
562
+ {
563
+ "artist": "Athena",
564
+ "track": "Yalan"
565
+ },
566
+ {
567
+ "artist": "The Beatles",
568
+ "track": "Don't Let Me Down - Remastered"
569
+ },
570
+ {
571
+ "artist": "Kovacs",
572
+ "track": "My Love"
573
+ },
574
+ {
575
+ "artist": "Dire Straits",
576
+ "track": "Money For Nothing"
577
+ },
578
+ {
579
+ "artist": "Pink Floyd",
580
+ "track": "Shine On You Crazy Diamond - Parts 1 - 7;Edit; 2001 Remastered Version"
581
+ },
582
+ {
583
+ "artist": "Blue \u00d6yster Cult",
584
+ "track": "(Don't Fear) The Reaper"
585
+ },
586
+ {
587
+ "artist": "Santana",
588
+ "track": "Day of Celebration"
589
+ },
590
+ {
591
+ "artist": "Stevie Ray Vaughan",
592
+ "track": "Voodoo Child (Slight Return)"
593
+ },
594
+ {
595
+ "artist": "Santana",
596
+ "track": "Whole Lotta Love (feat. Chris Cornell)"
597
+ },
598
+ {
599
+ "artist": "Santana",
600
+ "track": "Everybody's Everything"
601
+ },
602
+ {
603
+ "artist": "Santana",
604
+ "track": "Evil Ways"
605
+ },
606
+ {
607
+ "artist": "Santana",
608
+ "track": "I Am Somebody (feat. will.i.am)"
609
+ },
610
+ {
611
+ "artist": "Santana",
612
+ "track": "The Calling (feat. Eric Clapton)"
613
+ },
614
+ {
615
+ "artist": "Jimi Hendrix",
616
+ "track": "Hey Joe"
617
+ },
618
+ {
619
+ "artist": "A New Music Experience",
620
+ "track": "Shine On You Crazy Diamond"
621
+ },
622
+ {
623
+ "artist": "Bon Jovi",
624
+ "track": "Dry County"
625
+ },
626
+ {
627
+ "artist": "Soul Keita",
628
+ "track": "Democracy, I Was Thirsty"
629
+ },
630
+ {
631
+ "artist": "The Beatles",
632
+ "track": "I Want To Hold Your Hand - Remastered 2015"
633
+ },
634
+ {
635
+ "artist": "Elvis Presley",
636
+ "track": "It's Now or Never"
637
+ },
638
+ {
639
+ "artist": "Bob Marley & The Wailers",
640
+ "track": "War"
641
+ },
642
+ {
643
+ "artist": "Steely Dan",
644
+ "track": "Reelin' In The Years"
645
+ },
646
+ {
647
+ "artist": "Tom Petty and the Heartbreakers",
648
+ "track": "Breakdown"
649
+ },
650
+ {
651
+ "artist": "Pat Martino",
652
+ "track": "Sunny"
653
+ },
654
+ {
655
+ "artist": "B.B. King",
656
+ "track": "Baby I Love You"
657
+ },
658
+ {
659
+ "artist": "Metallica",
660
+ "track": "For Whom The Bell Tolls - Remastered"
661
+ },
662
+ {
663
+ "artist": "Barcelona Gipsy Klezmer Orchestra",
664
+ "track": "Hasta Siempre, Comandante"
665
+ },
666
+ {
667
+ "artist": "Elle King",
668
+ "track": "Playing For Keeps"
669
+ },
670
+ {
671
+ "artist": "B.B. King",
672
+ "track": "Ghetto Woman"
673
+ },
674
+ {
675
+ "artist": "B.B. King",
676
+ "track": "Caldonia"
677
+ },
678
+ {
679
+ "artist": "Tom Petty and the Heartbreakers",
680
+ "track": "Mary Jane's Last Dance"
681
+ },
682
+ {
683
+ "artist": "Athena",
684
+ "track": "Bu Adam Fezadan"
685
+ },
686
+ {
687
+ "artist": "Foghat",
688
+ "track": "Louisiana Blues"
689
+ },
690
+ {
691
+ "artist": "Cem Karaca",
692
+ "track": "Kerk\u00fck Zindan\u0131"
693
+ },
694
+ {
695
+ "artist": "Cem Karaca",
696
+ "track": "Deniz \u00dcst\u00fc K\u00f6p\u00fcr\u00fcr"
697
+ },
698
+ {
699
+ "artist": "Imagine Dragons",
700
+ "track": "Warriors"
701
+ },
702
+ {
703
+ "artist": "Santana",
704
+ "track": "Treat"
705
+ },
706
+ {
707
+ "artist": "Led Zeppelin",
708
+ "track": "Heartbreaker - 1990 Remaster"
709
+ },
710
+ {
711
+ "artist": "Mazhar Alanson",
712
+ "track": "Bu Ne Bi\u00e7im Hikaye B\u00f6yle"
713
+ },
714
+ {
715
+ "artist": "Santana",
716
+ "track": "Primavera"
717
+ },
718
+ {
719
+ "artist": "Santana",
720
+ "track": "Santana Jam"
721
+ },
722
+ {
723
+ "artist": "Santana",
724
+ "track": "Blues Magic"
725
+ },
726
+ {
727
+ "artist": "Lynyrd Skynyrd",
728
+ "track": "Poison Whiskey"
729
+ },
730
+ {
731
+ "artist": "Bar\u0131\u015f Man\u00e7o",
732
+ "track": "Nane Limon Kabu\u011fu"
733
+ },
734
+ {
735
+ "artist": "Cem Karaca",
736
+ "track": "Beni Siz Delirttiniz"
737
+ },
738
+ {
739
+ "artist": "Imagine Dragons",
740
+ "track": "Friction"
741
+ },
742
+ {
743
+ "artist": "Bob Dylan",
744
+ "track": "You Belong To Me"
745
+ },
746
+ {
747
+ "artist": "Coldplay",
748
+ "track": "Don't Panic"
749
+ },
750
+ {
751
+ "artist": "Gevende",
752
+ "track": "Sanki"
753
+ },
754
+ {
755
+ "artist": "Ray Charles",
756
+ "track": "Mess Around"
757
+ },
758
+ {
759
+ "artist": "Kylie Minogue",
760
+ "track": "Chocolate"
761
+ },
762
+ {
763
+ "artist": "Scorpions",
764
+ "track": "Still Loving You"
765
+ },
766
+ {
767
+ "artist": "Aretha Franklin",
768
+ "track": "At Last"
769
+ },
770
+ {
771
+ "artist": "Kool & The Gang",
772
+ "track": "Jungle Boogie"
773
+ },
774
+ {
775
+ "artist": "Gipsy Kings",
776
+ "track": "Hotel California - Spanish Mix"
777
+ },
778
+ {
779
+ "artist": "Gipsy Kings",
780
+ "track": "Volare (Nel Blu di Pinto di Blu)"
781
+ },
782
+ {
783
+ "artist": "Stevie Ray Vaughan",
784
+ "track": "The Things (That) I Used to Do"
785
+ },
786
+ {
787
+ "artist": "Erkin Koray",
788
+ "track": "Seni Her G\u00f6rd\u00fc\u011f\u00fcmde"
789
+ },
790
+ {
791
+ "artist": "Erkin Koray",
792
+ "track": "K\u0131zlar\u0131da Al\u0131n Askere"
793
+ },
794
+ {
795
+ "artist": "Erkin Koray",
796
+ "track": "Akrebin G\u00f6zleri"
797
+ },
798
+ {
799
+ "artist": "Wilson Pickett",
800
+ "track": "Hey Joe"
801
+ },
802
+ {
803
+ "artist": "Parliament",
804
+ "track": "Give Up The Funk (Tear The Roof Off The Sucker)"
805
+ },
806
+ {
807
+ "artist": "Al Green",
808
+ "track": "Love And Happiness"
809
+ },
810
+ {
811
+ "artist": "Santana",
812
+ "track": "Corazon Espinado (feat. Mana)"
813
+ },
814
+ {
815
+ "artist": "Kiss & Drive",
816
+ "track": "In Your Eyes"
817
+ },
818
+ {
819
+ "artist": "Amy Winehouse",
820
+ "track": "Mr Magic (Through The Smoke)"
821
+ },
822
+ {
823
+ "artist": "Led Zeppelin",
824
+ "track": "Good Times Bad Times - 1993 Remaster"
825
+ },
826
+ {
827
+ "artist": "Al Jarreau",
828
+ "track": "Ain't no sunshine"
829
+ },
830
+ {
831
+ "artist": "Adamlar",
832
+ "track": "T\u0131n T\u0131n"
833
+ },
834
+ {
835
+ "artist": "Adamlar",
836
+ "track": "Hepinize El Sallad\u0131m"
837
+ },
838
+ {
839
+ "artist": "Adamlar",
840
+ "track": "Orda Ortada"
841
+ },
842
+ {
843
+ "artist": "Adamlar",
844
+ "track": "\u015eakac\u0131 Birisin Sen"
845
+ },
846
+ {
847
+ "artist": "Adamlar",
848
+ "track": "Ac\u0131n\u0131n \u0130lac\u0131"
849
+ },
850
+ {
851
+ "artist": "Adamlar",
852
+ "track": "R\u00fcyalarda Buru\u015fmu\u015fum"
853
+ },
854
+ {
855
+ "artist": "Adamlar",
856
+ "track": "Ah Benim Hayat\u0131m"
857
+ },
858
+ {
859
+ "artist": "Adamlar",
860
+ "track": "E Tabi"
861
+ },
862
+ {
863
+ "artist": "Adamlar",
864
+ "track": "Yanm\u0131\u015f \u0130\u00e7inden"
865
+ },
866
+ {
867
+ "artist": "Arctic Monkeys",
868
+ "track": "Fluorescent Adolescent"
869
+ },
870
+ {
871
+ "artist": "Pink Floyd",
872
+ "track": "Wish You Were Here - 2011 Remastered Version"
873
+ },
874
+ {
875
+ "artist": "Hooverphonic",
876
+ "track": "Mad About You"
877
+ },
878
+ {
879
+ "artist": "Led Zeppelin",
880
+ "track": "Kashmir - 1990 Remaster"
881
+ },
882
+ {
883
+ "artist": "Aerosmith",
884
+ "track": "Falling In Love (Is Hard On The Knees)"
885
+ },
886
+ {
887
+ "artist": "mor ve \u00f6tesi",
888
+ "track": "Serseri"
889
+ },
890
+ {
891
+ "artist": "The Beatles",
892
+ "track": "Let It Be - Remastered"
893
+ },
894
+ {
895
+ "artist": "Procol Harum",
896
+ "track": "A Whiter Shade Of Pale"
897
+ },
898
+ {
899
+ "artist": "Beirut",
900
+ "track": "Nantes"
901
+ },
902
+ {
903
+ "artist": "Rod Stewart",
904
+ "track": "Da Ya Think I'm Sexy? - 2008 Remaster"
905
+ },
906
+ {
907
+ "artist": "Erik Truffaz",
908
+ "track": "Let Me Go ! (feat. Sophie Hunger)"
909
+ },
910
+ {
911
+ "artist": "Stevie Wonder",
912
+ "track": "Signed, Sealed, Delivered (I'm Yours)"
913
+ },
914
+ {
915
+ "artist": "ZZ Top",
916
+ "track": "La Grange - 1999 Remaster"
917
+ },
918
+ {
919
+ "artist": "TOTO",
920
+ "track": "Africa"
921
+ },
922
+ {
923
+ "artist": "Aerosmith",
924
+ "track": "Sweet Emotion"
925
+ },
926
+ {
927
+ "artist": "Eric Clapton",
928
+ "track": "Knockin' On Heaven's Door"
929
+ },
930
+ {
931
+ "artist": "Coldplay",
932
+ "track": "Up&Up"
933
+ },
934
+ {
935
+ "artist": "Nev",
936
+ "track": "Sen Gibi"
937
+ },
938
+ {
939
+ "artist": "MF\u00d6",
940
+ "track": "Hep Ya\u015f\u0131n 19"
941
+ },
942
+ {
943
+ "artist": "Guthrie Govan",
944
+ "track": "Lost in Rio"
945
+ },
946
+ {
947
+ "artist": "Craig David",
948
+ "track": "Rise & Fall - feat. Sting"
949
+ },
950
+ {
951
+ "artist": "Eric Clapton",
952
+ "track": "Autumn Leaves"
953
+ },
954
+ {
955
+ "artist": "James Blunt",
956
+ "track": "Goodbye My Lover"
957
+ },
958
+ {
959
+ "artist": "Harley's Studio Band",
960
+ "track": "This Life"
961
+ },
962
+ {
963
+ "artist": "Derek & The Dominos",
964
+ "track": "Layla - 40th Anniversary Version / 2010 Remastered"
965
+ },
966
+ {
967
+ "artist": "Nina Zilli",
968
+ "track": "50mila"
969
+ },
970
+ {
971
+ "artist": "Michael Jackson",
972
+ "track": "Love Never Felt So Good"
973
+ },
974
+ {
975
+ "artist": "Guadalupe Pineda",
976
+ "track": "Historia de un Amor"
977
+ },
978
+ {
979
+ "artist": "Celia Cruz",
980
+ "track": "La Vida Es Un Carnaval"
981
+ },
982
+ {
983
+ "artist": "Gipsy Kings",
984
+ "track": "Bamboleo"
985
+ },
986
+ {
987
+ "artist": "Led Zeppelin",
988
+ "track": "Babe I'm Gonna Leave You - 1990 Remaster"
989
+ },
990
+ {
991
+ "artist": "Led Zeppelin",
992
+ "track": "D'yer Mak'er - 1990 Remaster"
993
+ },
994
+ {
995
+ "artist": "Louis Armstrong",
996
+ "track": "Summertime"
997
+ },
998
+ {
999
+ "artist": "Yusuf / Cat Stevens",
1000
+ "track": "Wild World"
1001
+ },
1002
+ {
1003
+ "artist": "Premiata Forneria Marconi",
1004
+ "track": "Impressioni di settembre"
1005
+ },
1006
+ {
1007
+ "artist": "Los Naranjos",
1008
+ "track": "Cantarte a Ti"
1009
+ },
1010
+ {
1011
+ "artist": "Stevie Wonder",
1012
+ "track": "Superstition"
1013
+ },
1014
+ {
1015
+ "artist": "Junior",
1016
+ "track": "Mama Used To Say"
1017
+ },
1018
+ {
1019
+ "artist": "Bob Marley & The Wailers",
1020
+ "track": "Could You Be Loved"
1021
+ },
1022
+ {
1023
+ "artist": "B.B. King",
1024
+ "track": "The Thrill Is Gone"
1025
+ },
1026
+ {
1027
+ "artist": "Adamlar",
1028
+ "track": "\u0130nsan\u0131n D\u00fc\u015ft\u00fc\u011f\u00fc Durumlar"
1029
+ },
1030
+ {
1031
+ "artist": "Adamlar",
1032
+ "track": "Kad\u0131n"
1033
+ },
1034
+ {
1035
+ "artist": "Adamlar",
1036
+ "track": "Koca Ya\u015fl\u0131 \u015ei\u015fko D\u00fcnya"
1037
+ },
1038
+ {
1039
+ "artist": "Adamlar",
1040
+ "track": "Utanmazsan Unutmam"
1041
+ },
1042
+ {
1043
+ "artist": "Adamlar",
1044
+ "track": "Ko\u015fmadan"
1045
+ },
1046
+ {
1047
+ "artist": "Adamlar",
1048
+ "track": "\u00c7ek Sifonu"
1049
+ },
1050
+ {
1051
+ "artist": "Adamlar",
1052
+ "track": "Bizim Zaman\u0131m\u0131z"
1053
+ },
1054
+ {
1055
+ "artist": "Adamlar",
1056
+ "track": "Kendime \u00c7aylar"
1057
+ },
1058
+ {
1059
+ "artist": "Adamlar",
1060
+ "track": "\u00d6yle Normal"
1061
+ },
1062
+ {
1063
+ "artist": "Adamlar",
1064
+ "track": "Ate\u015f Ederim"
1065
+ },
1066
+ {
1067
+ "artist": "Adamlar",
1068
+ "track": "Bi \u00d6yle Bi B\u00f6yle"
1069
+ },
1070
+ {
1071
+ "artist": "Adamlar",
1072
+ "track": "Kap\u0131s\u0131 Kapal\u0131"
1073
+ },
1074
+ {
1075
+ "artist": "Pilli Bebek",
1076
+ "track": "Bak"
1077
+ },
1078
+ {
1079
+ "artist": "Stevie Ray Vaughan",
1080
+ "track": "Little Wing"
1081
+ },
1082
+ {
1083
+ "artist": "Duman",
1084
+ "track": "\u00d6yle Dertli"
1085
+ },
1086
+ {
1087
+ "artist": "Eric Clapton",
1088
+ "track": "Gotta Get Over - 2015 Remaster"
1089
+ },
1090
+ {
1091
+ "artist": "Eric Clapton",
1092
+ "track": "Ramblin' on My Mind"
1093
+ },
1094
+ {
1095
+ "artist": "Howlin' Wolf",
1096
+ "track": "Highway 49"
1097
+ },
1098
+ {
1099
+ "artist": "Led Zeppelin",
1100
+ "track": "Black Dog - 1990 Remaster"
1101
+ },
1102
+ {
1103
+ "artist": "Adamlar",
1104
+ "track": "Kap\u0131s\u0131 Kapal\u0131"
1105
+ },
1106
+ {
1107
+ "artist": "Guns N' Roses",
1108
+ "track": "Civil War"
1109
+ },
1110
+ {
1111
+ "artist": "Eric Clapton",
1112
+ "track": "Hoochie Coochie Man"
1113
+ },
1114
+ {
1115
+ "artist": "Eric Clapton",
1116
+ "track": "Worried Life Blues"
1117
+ },
1118
+ {
1119
+ "artist": "Eric Clapton",
1120
+ "track": "Can't Hold Out Much Longer"
1121
+ },
1122
+ {
1123
+ "artist": "Eric Clapton",
1124
+ "track": "My Very Good Friend the Milkman"
1125
+ },
1126
+ {
1127
+ "artist": "The Beatles",
1128
+ "track": "For No One - Remastered"
1129
+ },
1130
+ {
1131
+ "artist": "The Beatles",
1132
+ "track": "And I Love Her - Remastered"
1133
+ },
1134
+ {
1135
+ "artist": "The Beatles",
1136
+ "track": "I Saw Her Standing There - Remastered"
1137
+ },
1138
+ {
1139
+ "artist": "Wun Two",
1140
+ "track": "Frio"
1141
+ },
1142
+ {
1143
+ "artist": "The Beatles",
1144
+ "track": "While My Guitar Gently Weeps - Remastered"
1145
+ },
1146
+ {
1147
+ "artist": "The Beatles",
1148
+ "track": "Michelle - Remastered"
1149
+ },
1150
+ {
1151
+ "artist": "Coldplay",
1152
+ "track": "Adventure of a Lifetime"
1153
+ },
1154
+ {
1155
+ "artist": "The Ting Tings",
1156
+ "track": "Shut Up and Let Me Go"
1157
+ },
1158
+ {
1159
+ "artist": "Coldplay",
1160
+ "track": "True Love"
1161
+ },
1162
+ {
1163
+ "artist": "Queen",
1164
+ "track": "Innuendo - Remastered 2011"
1165
+ },
1166
+ {
1167
+ "artist": "Maroon 5",
1168
+ "track": "She Will Be Loved"
1169
+ },
1170
+ {
1171
+ "artist": "Pink Floyd",
1172
+ "track": "Another Brick In The Wall - 2001 Remastered Version"
1173
+ },
1174
+ {
1175
+ "artist": "Guns N' Roses",
1176
+ "track": "November Rain"
1177
+ },
1178
+ {
1179
+ "artist": "Jimi Hendrix",
1180
+ "track": "Little Wing"
1181
+ },
1182
+ {
1183
+ "artist": "James Brown",
1184
+ "track": "It's A Man's, Man's, Man's World - Mono"
1185
+ },
1186
+ {
1187
+ "artist": "Pink Floyd",
1188
+ "track": "Time - 2011 Remastered Version"
1189
+ },
1190
+ {
1191
+ "artist": "Teoman",
1192
+ "track": "Ya\u011fmur"
1193
+ },
1194
+ {
1195
+ "artist": "Florence + The Machine",
1196
+ "track": "Spectrum (Say My Name) - Calvin Harris Remix"
1197
+ },
1198
+ {
1199
+ "artist": "Sia",
1200
+ "track": "Elastic Heart"
1201
+ },
1202
+ {
1203
+ "artist": "Bob Marley & The Wailers",
1204
+ "track": "Three Little Birds"
1205
+ },
1206
+ {
1207
+ "artist": "Eric Clapton",
1208
+ "track": "Worried Life Blues - Live; 2015 Remaster"
1209
+ },
1210
+ {
1211
+ "artist": "Eric Clapton",
1212
+ "track": "Wonderful Tonight"
1213
+ },
1214
+ {
1215
+ "artist": "Eric Clapton",
1216
+ "track": "Change the World - 2015 Remaster"
1217
+ },
1218
+ {
1219
+ "artist": "The Rolling Stones",
1220
+ "track": "Beast Of Burden - Remastered"
1221
+ },
1222
+ {
1223
+ "artist": "Hugh Laurie",
1224
+ "track": "The St. Louis Blues"
1225
+ },
1226
+ {
1227
+ "artist": "Al Green",
1228
+ "track": "Tired Of Being Alone"
1229
+ },
1230
+ {
1231
+ "artist": "Afroman",
1232
+ "track": "Because I Got High"
1233
+ },
1234
+ {
1235
+ "artist": "Ray Charles",
1236
+ "track": "Hallelujah, I Love Her So"
1237
+ },
1238
+ {
1239
+ "artist": "The Doors",
1240
+ "track": "Riders on the Storm"
1241
+ },
1242
+ {
1243
+ "artist": "Queen",
1244
+ "track": "I Was Born To Love You - 2011 Remaster"
1245
+ },
1246
+ {
1247
+ "artist": "Van Halen",
1248
+ "track": "Hot for Teacher - 2004 Remaster"
1249
+ },
1250
+ {
1251
+ "artist": "Radiohead",
1252
+ "track": "Creep"
1253
+ },
1254
+ {
1255
+ "artist": "Maxence Cyrin",
1256
+ "track": "Where Is My Mind"
1257
+ },
1258
+ {
1259
+ "artist": "The Rolling Stones",
1260
+ "track": "Miss You"
1261
+ },
1262
+ {
1263
+ "artist": "Beats Antique",
1264
+ "track": "The Porch"
1265
+ },
1266
+ {
1267
+ "artist": "Sublime",
1268
+ "track": "Santeria"
1269
+ },
1270
+ {
1271
+ "artist": "Oasis",
1272
+ "track": "Wonderwall"
1273
+ },
1274
+ {
1275
+ "artist": "Jimi Hendrix",
1276
+ "track": "Purple Haze"
1277
+ },
1278
+ {
1279
+ "artist": "The Police",
1280
+ "track": "Don't Stand So Close To Me"
1281
+ },
1282
+ {
1283
+ "artist": "Eric Clapton",
1284
+ "track": "Cocaine"
1285
+ },
1286
+ {
1287
+ "artist": "Sting",
1288
+ "track": "Fragile"
1289
+ },
1290
+ {
1291
+ "artist": "Teoman",
1292
+ "track": "Ruhun Sar\u0131\u015f\u0131n"
1293
+ },
1294
+ {
1295
+ "artist": "Teoman",
1296
+ "track": "Rapsodi \u0130stanbul"
1297
+ },
1298
+ {
1299
+ "artist": "Teoman",
1300
+ "track": "Haziran"
1301
+ },
1302
+ {
1303
+ "artist": "Teoman",
1304
+ "track": "A\u015fk K\u0131r\u0131nt\u0131lar\u0131"
1305
+ },
1306
+ {
1307
+ "artist": "Teoman",
1308
+ "track": "Senden \u00d6nce Senden Sonra"
1309
+ },
1310
+ {
1311
+ "artist": "Teoman",
1312
+ "track": "\u00c7oban Y\u0131ld\u0131z\u0131"
1313
+ },
1314
+ {
1315
+ "artist": "Teoman",
1316
+ "track": "Renkli R\u00fcyalar Oteli"
1317
+ },
1318
+ {
1319
+ "artist": "Guns N' Roses",
1320
+ "track": "This I Love"
1321
+ },
1322
+ {
1323
+ "artist": "Sam Smith",
1324
+ "track": "I'm Not The Only One"
1325
+ },
1326
+ {
1327
+ "artist": "James Blunt",
1328
+ "track": "1973"
1329
+ },
1330
+ {
1331
+ "artist": "Dire Straits",
1332
+ "track": "Sultans Of Swing"
1333
+ },
1334
+ {
1335
+ "artist": "AC/DC",
1336
+ "track": "Back In Black"
1337
+ },
1338
+ {
1339
+ "artist": "Marcus Miller",
1340
+ "track": "Rush Over"
1341
+ },
1342
+ {
1343
+ "artist": "Marcus Miller",
1344
+ "track": "Detroit"
1345
+ },
1346
+ {
1347
+ "artist": "Coldplay",
1348
+ "track": "Princess of China"
1349
+ },
1350
+ {
1351
+ "artist": "Louis Armstrong",
1352
+ "track": "Kiss Of Fire"
1353
+ },
1354
+ {
1355
+ "artist": "Pink Floyd",
1356
+ "track": "Money - 2011 Remastered Version"
1357
+ },
1358
+ {
1359
+ "artist": "Bob Marley & The Wailers",
1360
+ "track": "African Herbsman"
1361
+ },
1362
+ {
1363
+ "artist": "Nelly Furtado",
1364
+ "track": "Say It Right - Main"
1365
+ },
1366
+ {
1367
+ "artist": "Zaz",
1368
+ "track": "Je veux"
1369
+ },
1370
+ {
1371
+ "artist": "Bee Gees",
1372
+ "track": "Stayin' Alive - Remastered Version"
1373
+ },
1374
+ {
1375
+ "artist": "Yann Tiersen",
1376
+ "track": "L'autre valse d'Am\u00e9lie"
1377
+ },
1378
+ {
1379
+ "artist": "Jack Johnson",
1380
+ "track": "Better Together"
1381
+ },
1382
+ {
1383
+ "artist": "Coldplay",
1384
+ "track": "Paradise"
1385
+ },
1386
+ {
1387
+ "artist": "Pink Floyd",
1388
+ "track": "Brain Damage - 2011 Remastered Version"
1389
+ },
1390
+ {
1391
+ "artist": "Bastille",
1392
+ "track": "Pompeii"
1393
+ },
1394
+ {
1395
+ "artist": "Bob Marley & The Wailers",
1396
+ "track": "Get Up, Stand Up"
1397
+ },
1398
+ {
1399
+ "artist": "The Black Keys",
1400
+ "track": "Lonely Boy"
1401
+ },
1402
+ {
1403
+ "artist": "Cem Karaca",
1404
+ "track": "Sen De Ba\u015f\u0131n\u0131 Al\u0131p Gitme"
1405
+ },
1406
+ {
1407
+ "artist": "Cem Karaca",
1408
+ "track": "O\u011fluma"
1409
+ },
1410
+ {
1411
+ "artist": "Eric Clapton",
1412
+ "track": "I Shot the Sheriff - 2005 Remaster"
1413
+ },
1414
+ {
1415
+ "artist": "AC/DC",
1416
+ "track": "Highway to Hell"
1417
+ },
1418
+ {
1419
+ "artist": "Jason Mraz",
1420
+ "track": "I'm Yours"
1421
+ },
1422
+ {
1423
+ "artist": "Neil Young",
1424
+ "track": "Harvest Moon"
1425
+ },
1426
+ {
1427
+ "artist": "Muse",
1428
+ "track": "Starlight"
1429
+ },
1430
+ {
1431
+ "artist": "Tina Turner",
1432
+ "track": "The Best - Edit"
1433
+ },
1434
+ {
1435
+ "artist": "Donna Summer",
1436
+ "track": "Bad Girls"
1437
+ },
1438
+ {
1439
+ "artist": "Florence + The Machine",
1440
+ "track": "Shake It Out"
1441
+ },
1442
+ {
1443
+ "artist": "Scorpions",
1444
+ "track": "Where the River Flows - MTV Unplugged"
1445
+ },
1446
+ {
1447
+ "artist": "Mick Jagger",
1448
+ "track": "God Gave Me Everything"
1449
+ },
1450
+ {
1451
+ "artist": "Gipsy Kings",
1452
+ "track": "Djobi, Djoba"
1453
+ },
1454
+ {
1455
+ "artist": "Gary Moore",
1456
+ "track": "Still Got The Blues"
1457
+ },
1458
+ {
1459
+ "artist": "80's Pop Band",
1460
+ "track": "I Wanna Dance with Somebody"
1461
+ },
1462
+ {
1463
+ "artist": "The Tolkien Ensemble",
1464
+ "track": "Treebeard's Song"
1465
+ },
1466
+ {
1467
+ "artist": "Hozier",
1468
+ "track": "Take Me To Church"
1469
+ },
1470
+ {
1471
+ "artist": "Pink Floyd",
1472
+ "track": "Brain Damage - 2011 Remastered Version"
1473
+ },
1474
+ {
1475
+ "artist": "Pink Floyd",
1476
+ "track": "Comfortably Numb - 2011 Remastered Version"
1477
+ },
1478
+ {
1479
+ "artist": "Bill Conti",
1480
+ "track": "Gonna Fly Now (Theme From \"Rocky\") - 2006 - Remaster"
1481
+ },
1482
+ {
1483
+ "artist": "Christina Perri",
1484
+ "track": "Jar of Hearts"
1485
+ },
1486
+ {
1487
+ "artist": "Bonnie Tyler",
1488
+ "track": "Total Eclipse of the Heart"
1489
+ },
1490
+ {
1491
+ "artist": "Bon Jovi",
1492
+ "track": "Livin' On A Prayer"
1493
+ },
1494
+ {
1495
+ "artist": "Aerosmith",
1496
+ "track": "Crazy"
1497
+ },
1498
+ {
1499
+ "artist": "Aerosmith",
1500
+ "track": "I Don't Want to Miss a Thing - From \"Armageddon\" Soundtrack"
1501
+ },
1502
+ {
1503
+ "artist": "Aerosmith",
1504
+ "track": "Walk This Way"
1505
+ },
1506
+ {
1507
+ "artist": "Daryl Hall & John Oates",
1508
+ "track": "You Make My Dreams (Come True)"
1509
+ },
1510
+ {
1511
+ "artist": "David Bowie",
1512
+ "track": "Life On Mars? - 1999 Remastered Version"
1513
+ },
1514
+ {
1515
+ "artist": "\u015eebnem Ferah",
1516
+ "track": "Sigara"
1517
+ },
1518
+ {
1519
+ "artist": "Nil Karaibrahimgil",
1520
+ "track": "Kanatlar\u0131m Var Ruhumda"
1521
+ },
1522
+ {
1523
+ "artist": "Deep Purple",
1524
+ "track": "Smoke On The Water - Remastered 2012"
1525
+ },
1526
+ {
1527
+ "artist": "Deep Purple",
1528
+ "track": "Woman from Tokyo - 2000 Remaster"
1529
+ },
1530
+ {
1531
+ "artist": "Herbie Hancock",
1532
+ "track": "Tempo de Amor"
1533
+ },
1534
+ {
1535
+ "artist": "Jeff Buckley",
1536
+ "track": "Hallelujah"
1537
+ },
1538
+ {
1539
+ "artist": "Israel Kamakawiwo'ole",
1540
+ "track": "Somewhere Over The Rainbow_What A Wonderful World"
1541
+ },
1542
+ {
1543
+ "artist": "Israel Kamakawiwo'ole",
1544
+ "track": "Over The Rainbow"
1545
+ },
1546
+ {
1547
+ "artist": "B\u00fclent Orta\u00e7gil",
1548
+ "track": "De\u011firmenler"
1549
+ },
1550
+ {
1551
+ "artist": "Emil\u00edana Torrini",
1552
+ "track": "Dead Duck"
1553
+ },
1554
+ {
1555
+ "artist": "Bob Marley & The Wailers",
1556
+ "track": "Three Little Birds"
1557
+ },
1558
+ {
1559
+ "artist": "London Grammar",
1560
+ "track": "Maybe"
1561
+ },
1562
+ {
1563
+ "artist": "Led Zeppelin",
1564
+ "track": "Whole Lotta Love - 1990 Remaster"
1565
+ },
1566
+ {
1567
+ "artist": "Guns N' Roses",
1568
+ "track": "Sweet Child O' Mine"
1569
+ },
1570
+ {
1571
+ "artist": "Peter Hall",
1572
+ "track": "Tom Bombadil's Song (I)"
1573
+ },
1574
+ {
1575
+ "artist": "John Lennon",
1576
+ "track": "Imagine - Remastered 2010"
1577
+ },
1578
+ {
1579
+ "artist": "Teoman",
1580
+ "track": "Mavi Ku\u015f \u0130le K\u00fc\u00e7\u00fck K\u0131z"
1581
+ },
1582
+ {
1583
+ "artist": "Santana",
1584
+ "track": "Oye Como Va"
1585
+ },
1586
+ {
1587
+ "artist": "Scorpions",
1588
+ "track": "Wind Of Change"
1589
+ },
1590
+ {
1591
+ "artist": "Muse",
1592
+ "track": "Supermassive Black Hole"
1593
+ },
1594
+ {
1595
+ "artist": "Bar\u0131\u015f Man\u00e7o",
1596
+ "track": "Nazar Eyle - V1"
1597
+ },
1598
+ {
1599
+ "artist": "James Brown",
1600
+ "track": "I Got You (I Feel Good)"
1601
+ },
1602
+ {
1603
+ "artist": "Y\u00fczy\u00fczeyken Konu\u015furuz",
1604
+ "track": "Ate\u015f Edecek Misin?"
1605
+ },
1606
+ {
1607
+ "artist": "Gevende",
1608
+ "track": "Esinti"
1609
+ },
1610
+ {
1611
+ "artist": "Tae Lane",
1612
+ "track": "Low Down Pleasures"
1613
+ },
1614
+ {
1615
+ "artist": "Robbie Williams",
1616
+ "track": "Dream A Little Dream"
1617
+ },
1618
+ {
1619
+ "artist": "HIM",
1620
+ "track": "Gone With The Sin"
1621
+ },
1622
+ {
1623
+ "artist": "Coldplay",
1624
+ "track": "Trouble"
1625
+ },
1626
+ {
1627
+ "artist": "Steely Dan",
1628
+ "track": "Dirty Work"
1629
+ },
1630
+ {
1631
+ "artist": "Marvin Gaye",
1632
+ "track": "Got To Give It Up - Pt. 1"
1633
+ },
1634
+ {
1635
+ "artist": "Aerosmith",
1636
+ "track": "Cryin'"
1637
+ },
1638
+ {
1639
+ "artist": "Coldplay",
1640
+ "track": "God Put a Smile upon Your Face"
1641
+ },
1642
+ {
1643
+ "artist": "Stan Getz",
1644
+ "track": "Corcovado - Quiet Nights Of Quiet Stars"
1645
+ },
1646
+ {
1647
+ "artist": "Coldplay",
1648
+ "track": "See You Soon"
1649
+ },
1650
+ {
1651
+ "artist": "Eric Clapton",
1652
+ "track": "Layla - Acoustic; Live at MTV Unplugged, Bray Film Studios, Windsor, England, UK, 1/16/1992; 1999 Remaster"
1653
+ },
1654
+ {
1655
+ "artist": "Andrea Motis",
1656
+ "track": "L.O.V.E"
1657
+ },
1658
+ {
1659
+ "artist": "Scott Matthew",
1660
+ "track": "L.o.v.e."
1661
+ },
1662
+ {
1663
+ "artist": "Buena Vista Social Club",
1664
+ "track": "Chan Chan"
1665
+ },
1666
+ {
1667
+ "artist": "Pink Floyd",
1668
+ "track": "Hey You - 2011 Remastered Version"
1669
+ },
1670
+ {
1671
+ "artist": "The Neighbourhood",
1672
+ "track": "Sweater Weather"
1673
+ },
1674
+ {
1675
+ "artist": "Coldplay",
1676
+ "track": "True Love"
1677
+ },
1678
+ {
1679
+ "artist": "Coldplay",
1680
+ "track": "A Rush of Blood to the Head"
1681
+ },
1682
+ {
1683
+ "artist": "\u015eevval Sam",
1684
+ "track": "Bozcaada (Por Uno Cabeza)"
1685
+ },
1686
+ {
1687
+ "artist": "George Ezra",
1688
+ "track": "Spectacular Rival"
1689
+ },
1690
+ {
1691
+ "artist": "George Ezra",
1692
+ "track": "Listen to the Man"
1693
+ },
1694
+ {
1695
+ "artist": "Lucio Quarantotto",
1696
+ "track": "Time To Say Goodbye (Con Te Partir\u00f2)"
1697
+ },
1698
+ {
1699
+ "artist": "Fallulah",
1700
+ "track": "Bridges - International Single Version"
1701
+ },
1702
+ {
1703
+ "artist": "Coldplay",
1704
+ "track": "42"
1705
+ },
1706
+ {
1707
+ "artist": "Marvin Gaye",
1708
+ "track": "Let's Get It On"
1709
+ },
1710
+ {
1711
+ "artist": "Amy Winehouse",
1712
+ "track": "Tears Dry On Their Own"
1713
+ },
1714
+ {
1715
+ "artist": "Lily Allen",
1716
+ "track": "Littlest Things"
1717
+ },
1718
+ {
1719
+ "artist": "Lily Allen",
1720
+ "track": "22"
1721
+ },
1722
+ {
1723
+ "artist": "Ben E. King",
1724
+ "track": "Stand By Me"
1725
+ },
1726
+ {
1727
+ "artist": "Marvin Gaye",
1728
+ "track": "Let's Get It On"
1729
+ },
1730
+ {
1731
+ "artist": "Led Zeppelin",
1732
+ "track": "The Girl I Love She Got Long Black Wavy Hair - \"Tasty Pop Sundae\" Live Version From BBC Sessions"
1733
+ },
1734
+ {
1735
+ "artist": "Sleeping At Last",
1736
+ "track": "Mars"
1737
+ },
1738
+ {
1739
+ "artist": "Keane",
1740
+ "track": "Everybody's Changing"
1741
+ },
1742
+ {
1743
+ "artist": "Lily Allen",
1744
+ "track": "Everybody's Changing"
1745
+ },
1746
+ {
1747
+ "artist": "Joe Cocker",
1748
+ "track": "Unchain My Heart"
1749
+ },
1750
+ {
1751
+ "artist": "Ray Charles",
1752
+ "track": "I've Got a Woman"
1753
+ },
1754
+ {
1755
+ "artist": "Back In Black",
1756
+ "track": "TNT"
1757
+ },
1758
+ {
1759
+ "artist": "Sting",
1760
+ "track": "Shape Of My Heart"
1761
+ },
1762
+ {
1763
+ "artist": "Coldplay",
1764
+ "track": "Strawberry Swing"
1765
+ },
1766
+ {
1767
+ "artist": "Coldplay",
1768
+ "track": "Viva La Vida"
1769
+ },
1770
+ {
1771
+ "artist": "Imagine Dragons",
1772
+ "track": "Warriors"
1773
+ },
1774
+ {
1775
+ "artist": "Sia",
1776
+ "track": "Chandelier"
1777
+ },
1778
+ {
1779
+ "artist": "Linkin Park",
1780
+ "track": "Numb"
1781
+ },
1782
+ {
1783
+ "artist": "ABBA",
1784
+ "track": "Dancing Queen"
1785
+ },
1786
+ {
1787
+ "artist": "No Doubt",
1788
+ "track": "Don't Speak"
1789
+ },
1790
+ {
1791
+ "artist": "Nina Simone",
1792
+ "track": "Feeling Good"
1793
+ },
1794
+ {
1795
+ "artist": "Nitin Sawhney",
1796
+ "track": "Homelands"
1797
+ },
1798
+ {
1799
+ "artist": "Buena Vista Social Club",
1800
+ "track": "El Carretero"
1801
+ },
1802
+ {
1803
+ "artist": "Coldplay",
1804
+ "track": "Christmas Lights"
1805
+ },
1806
+ {
1807
+ "artist": "Foster The People",
1808
+ "track": "Pumped Up Kicks"
1809
+ },
1810
+ {
1811
+ "artist": "Queen",
1812
+ "track": "The Show Must Go On - Remastered 2011"
1813
+ },
1814
+ {
1815
+ "artist": "Passion Pit",
1816
+ "track": "Take a Walk"
1817
+ },
1818
+ {
1819
+ "artist": "Back In Black",
1820
+ "track": "Back in Black"
1821
+ },
1822
+ {
1823
+ "artist": "Pixies",
1824
+ "track": "Where Is My Mind?"
1825
+ },
1826
+ {
1827
+ "artist": "Michael Jackson",
1828
+ "track": "Smooth Criminal - 2012 Remaster"
1829
+ },
1830
+ {
1831
+ "artist": "Andru Donalds",
1832
+ "track": "Mishale"
1833
+ },
1834
+ {
1835
+ "artist": "Elvis Presley",
1836
+ "track": "A Little Less Conversation"
1837
+ },
1838
+ {
1839
+ "artist": "Ciara",
1840
+ "track": "Can't Leave 'Em Alone (feat. 50 Cent)"
1841
+ },
1842
+ {
1843
+ "artist": "Coldplay",
1844
+ "track": "A Sky Full of Stars"
1845
+ },
1846
+ {
1847
+ "artist": "Rodr\u00edguez",
1848
+ "track": "Sugar Man"
1849
+ },
1850
+ {
1851
+ "artist": "The London Film Score Orchestra",
1852
+ "track": "Far from Any Road - Main Title Theme From \"True Detectives\""
1853
+ },
1854
+ {
1855
+ "artist": "Coldplay",
1856
+ "track": "Charlie Brown"
1857
+ },
1858
+ {
1859
+ "artist": "Imagine Dragons",
1860
+ "track": "It's Time"
1861
+ },
1862
+ {
1863
+ "artist": "Imagine Dragons",
1864
+ "track": "Demons"
1865
+ },
1866
+ {
1867
+ "artist": "The Civil Wars",
1868
+ "track": "Poison & Wine"
1869
+ },
1870
+ {
1871
+ "artist": "Arctic Monkeys",
1872
+ "track": "Why'd You Only Call Me When You're High?"
1873
+ },
1874
+ {
1875
+ "artist": "Milky Chance",
1876
+ "track": "Stolen Dance"
1877
+ },
1878
+ {
1879
+ "artist": "Mirkelam",
1880
+ "track": "Hat\u0131ralar"
1881
+ },
1882
+ {
1883
+ "artist": "Coldplay",
1884
+ "track": "Magic"
1885
+ },
1886
+ {
1887
+ "artist": "Aerosmith",
1888
+ "track": "Dream On"
1889
+ },
1890
+ {
1891
+ "artist": "Cem Karaca",
1892
+ "track": "Resimdeki G\u00f6zyaslari (Apaslar)"
1893
+ },
1894
+ {
1895
+ "artist": "Gorillaz",
1896
+ "track": "Feel Good Inc."
1897
+ },
1898
+ {
1899
+ "artist": "Howard Shore",
1900
+ "track": "Shore: Lord of the Rings: The Fellowship"
1901
+ },
1902
+ {
1903
+ "artist": "B\u00fclent Orta\u00e7gil",
1904
+ "track": "Benimle Oynarm\u0131s\u0131n"
1905
+ },
1906
+ {
1907
+ "artist": "Serena Ryder",
1908
+ "track": "Stompa"
1909
+ },
1910
+ {
1911
+ "artist": "Bob Marley & The Wailers",
1912
+ "track": "One Love"
1913
+ },
1914
+ {
1915
+ "artist": "Coldplay",
1916
+ "track": "Shiver"
1917
+ },
1918
+ {
1919
+ "artist": "Red Hot Chili Peppers",
1920
+ "track": "Snow (Hey Oh)"
1921
+ },
1922
+ {
1923
+ "artist": "Gnarls Barkley",
1924
+ "track": "Crazy"
1925
+ },
1926
+ {
1927
+ "artist": "Empire of the Sun",
1928
+ "track": "Alive"
1929
+ },
1930
+ {
1931
+ "artist": "Empire of the Sun",
1932
+ "track": "We Are The People"
1933
+ },
1934
+ {
1935
+ "artist": "Sting",
1936
+ "track": "Englishman In New York"
1937
+ },
1938
+ {
1939
+ "artist": "Ben E. King",
1940
+ "track": "Stand By Me"
1941
+ },
1942
+ {
1943
+ "artist": "John Lennon",
1944
+ "track": "Imagine"
1945
+ },
1946
+ {
1947
+ "artist": "Santa Esmeralda",
1948
+ "track": "Don't Let Me Be Misunderstood"
1949
+ },
1950
+ {
1951
+ "artist": "Bob Marley & The Wailers",
1952
+ "track": "No Woman, No Cry - Live At The Lyceum, London/1975"
1953
+ },
1954
+ {
1955
+ "artist": "Frank Sinatra",
1956
+ "track": "Blue Moon - 1999 Remastered"
1957
+ },
1958
+ {
1959
+ "artist": "Sertab Erener",
1960
+ "track": "Zor Kad\u0131n"
1961
+ },
1962
+ {
1963
+ "artist": "Sertab Erener",
1964
+ "track": "Kumsalda"
1965
+ },
1966
+ {
1967
+ "artist": "Moby",
1968
+ "track": "Porcelain"
1969
+ },
1970
+ {
1971
+ "artist": "Band Of Skulls",
1972
+ "track": "I Know What I Am"
1973
+ },
1974
+ {
1975
+ "artist": "Urge Overkill",
1976
+ "track": "Girl, You'll Be a Woman Soon"
1977
+ },
1978
+ {
1979
+ "artist": "Ingrid Michaelson",
1980
+ "track": "You and I"
1981
+ },
1982
+ {
1983
+ "artist": "Pharrell Williams",
1984
+ "track": "Happy"
1985
+ },
1986
+ {
1987
+ "artist": "Hurts",
1988
+ "track": "Stay"
1989
+ },
1990
+ {
1991
+ "artist": "Norah Jones",
1992
+ "track": "Say Goodbye"
1993
+ },
1994
+ {
1995
+ "artist": "Fallulah",
1996
+ "track": "I Lay My Head"
1997
+ },
1998
+ {
1999
+ "artist": "Jimi Hendrix",
2000
+ "track": "Izabella"
2001
+ },
2002
+ {
2003
+ "artist": "Coldplay",
2004
+ "track": "Only Superstition"
2005
+ },
2006
+ {
2007
+ "artist": "The Wailers",
2008
+ "track": "I Shot The Sheriff"
2009
+ },
2010
+ {
2011
+ "artist": "Bob Marley & The Wailers",
2012
+ "track": "Is This Love"
2013
+ },
2014
+ {
2015
+ "artist": "Quantic",
2016
+ "track": "Time Is the Enemy"
2017
+ },
2018
+ {
2019
+ "artist": "Corinne Bailey Rae",
2020
+ "track": "Choux Pastry Heart"
2021
+ },
2022
+ {
2023
+ "artist": "Agnes Obel",
2024
+ "track": "Just So"
2025
+ },
2026
+ {
2027
+ "artist": "Agnes Obel",
2028
+ "track": "The Curse"
2029
+ },
2030
+ {
2031
+ "artist": "Fallulah",
2032
+ "track": "Carol of the Bells"
2033
+ },
2034
+ {
2035
+ "artist": "Patrick Watson",
2036
+ "track": "Lighthouse"
2037
+ },
2038
+ {
2039
+ "artist": "Aerosmith",
2040
+ "track": "Come Together"
2041
+ },
2042
+ {
2043
+ "artist": "Teoman",
2044
+ "track": "Tek Ba\u015f\u0131na Dans"
2045
+ },
2046
+ {
2047
+ "artist": "Teoman",
2048
+ "track": "G\u00fczel Bir G\u00fcn"
2049
+ },
2050
+ {
2051
+ "artist": "M\u00fcsl\u00fcm G\u00fcrses",
2052
+ "track": "Sensiz Olmaz"
2053
+ },
2054
+ {
2055
+ "artist": "Imagine Dragons",
2056
+ "track": "Radioactive"
2057
+ },
2058
+ {
2059
+ "artist": "Elvis Presley",
2060
+ "track": "Jailhouse Rock"
2061
+ },
2062
+ {
2063
+ "artist": "The Blues Brothers",
2064
+ "track": "Everybody Needs Somebody To Love"
2065
+ },
2066
+ {
2067
+ "artist": "Queen",
2068
+ "track": "Sail Away Sweet Sister - Remastered 2011"
2069
+ },
2070
+ {
2071
+ "artist": "Stereo Avenue",
2072
+ "track": "Mad World"
2073
+ },
2074
+ {
2075
+ "artist": "Feist",
2076
+ "track": "Mushaboom"
2077
+ },
2078
+ {
2079
+ "artist": "Carla Bruni",
2080
+ "track": "Quelqu'un M'a Dit"
2081
+ },
2082
+ {
2083
+ "artist": "The Cinematic Orchestra",
2084
+ "track": "That Home"
2085
+ },
2086
+ {
2087
+ "artist": "K Team",
2088
+ "track": "Sorry Seem to Be the Hardest Word - Originally Performed By Elton John"
2089
+ },
2090
+ {
2091
+ "artist": "Sean Paul",
2092
+ "track": "Hold My Hand (feat. Keri Hilson)"
2093
+ },
2094
+ {
2095
+ "artist": "Dido",
2096
+ "track": "White Flag"
2097
+ },
2098
+ {
2099
+ "artist": "Queen",
2100
+ "track": "Save Me - 2011 Remaster"
2101
+ },
2102
+ {
2103
+ "artist": "Hans Zimmer",
2104
+ "track": "Time"
2105
+ },
2106
+ {
2107
+ "artist": "Coldplay",
2108
+ "track": "Every Teardrop Is a Waterfall"
2109
+ },
2110
+ {
2111
+ "artist": "S\u00f3ley",
2112
+ "track": "Pretty Face"
2113
+ },
2114
+ {
2115
+ "artist": "S\u00f3ley",
2116
+ "track": "The Sun Is Going Down II"
2117
+ },
2118
+ {
2119
+ "artist": "Bob Dylan",
2120
+ "track": "The Man in Me"
2121
+ },
2122
+ {
2123
+ "artist": "Bob Dylan",
2124
+ "track": "Like a Rolling Stone"
2125
+ },
2126
+ {
2127
+ "artist": "Bob Dylan",
2128
+ "track": "Isis"
2129
+ },
2130
+ {
2131
+ "artist": "Bob Dylan",
2132
+ "track": "Hurricane"
2133
+ },
2134
+ {
2135
+ "artist": "Lana Del Rey",
2136
+ "track": "Yayo"
2137
+ },
2138
+ {
2139
+ "artist": "Red Hot Chili Peppers",
2140
+ "track": "Can't Stop"
2141
+ },
2142
+ {
2143
+ "artist": "Pirates Of New Providence",
2144
+ "track": "Dead Man's Chest"
2145
+ },
2146
+ {
2147
+ "artist": "fun.",
2148
+ "track": "We Are Young (feat. Janelle Mon\u00e1e)"
2149
+ },
2150
+ {
2151
+ "artist": "Amatorski",
2152
+ "track": "Soldier"
2153
+ },
2154
+ {
2155
+ "artist": "Scott McKenzie",
2156
+ "track": "San Francisco (Be Sure to Wear Flowers in Your Hair)"
2157
+ },
2158
+ {
2159
+ "artist": "Red Hot Chili Peppers",
2160
+ "track": "Otherside"
2161
+ },
2162
+ {
2163
+ "artist": "The Yesteryears",
2164
+ "track": "Yesterday"
2165
+ },
2166
+ {
2167
+ "artist": "Robbie Williams",
2168
+ "track": "Angels"
2169
+ },
2170
+ {
2171
+ "artist": "Robbie Williams",
2172
+ "track": "Feel"
2173
+ },
2174
+ {
2175
+ "artist": "The Verve",
2176
+ "track": "Bitter Sweet Symphony"
2177
+ },
2178
+ {
2179
+ "artist": "Queen",
2180
+ "track": "Crazy Little Thing Called Love - 2011 Remaster"
2181
+ },
2182
+ {
2183
+ "artist": "Queen",
2184
+ "track": "Another One Bites The Dust - 2011 Remaster"
2185
+ },
2186
+ {
2187
+ "artist": "Queen",
2188
+ "track": "Don't Stop Me Now - 2011 Remaster"
2189
+ },
2190
+ {
2191
+ "artist": "Johnny Cash",
2192
+ "track": "Hurt"
2193
+ },
2194
+ {
2195
+ "artist": "Christina Aguilera",
2196
+ "track": "Hurt"
2197
+ },
2198
+ {
2199
+ "artist": "Duman",
2200
+ "track": "Elleri Ellerime"
2201
+ },
2202
+ {
2203
+ "artist": "Duman",
2204
+ "track": "Yanibasimdan"
2205
+ },
2206
+ {
2207
+ "artist": "Duman",
2208
+ "track": "Senden Daha G\u00fczel"
2209
+ },
2210
+ {
2211
+ "artist": "Mathieu Boogaerts",
2212
+ "track": "Avant que je m'ennuie"
2213
+ },
2214
+ {
2215
+ "artist": "Queen",
2216
+ "track": "Love Of My Life - Remastered 2011"
2217
+ },
2218
+ {
2219
+ "artist": "Cinescore",
2220
+ "track": "The Hobbit - Misty Mountains (The Dwarves Song) - Cover Version"
2221
+ },
2222
+ {
2223
+ "artist": "Elvis Presley",
2224
+ "track": "All Shook Up"
2225
+ },
2226
+ {
2227
+ "artist": "Pinhani",
2228
+ "track": "Zaman Beklemez"
2229
+ },
2230
+ {
2231
+ "artist": "Volkan Konak",
2232
+ "track": "Gurbet"
2233
+ },
2234
+ {
2235
+ "artist": "\u00d6rsten",
2236
+ "track": "Fleur blanche"
2237
+ },
2238
+ {
2239
+ "artist": "Stateless",
2240
+ "track": "Bloodstream"
2241
+ },
2242
+ {
2243
+ "artist": "Keane",
2244
+ "track": "Somewhere Only We Know"
2245
+ },
2246
+ {
2247
+ "artist": "Sakin",
2248
+ "track": "Edepsiz Komedya"
2249
+ },
2250
+ {
2251
+ "artist": "Rod Stewart",
2252
+ "track": "Moonglow"
2253
+ },
2254
+ {
2255
+ "artist": "Christina Aguilera",
2256
+ "track": "You Lost Me"
2257
+ },
2258
+ {
2259
+ "artist": "Donae'o",
2260
+ "track": "Move to Da Gyal Dem - Original"
2261
+ },
2262
+ {
2263
+ "artist": "M83",
2264
+ "track": "Outro"
2265
+ },
2266
+ {
2267
+ "artist": "Morcheeba",
2268
+ "track": "Enjoy The Ride"
2269
+ },
2270
+ {
2271
+ "artist": "MF\u00d6",
2272
+ "track": "Bu Sabah Ya\u011fmur Var \u0130stanbul'da"
2273
+ },
2274
+ {
2275
+ "artist": "Aretha Franklin",
2276
+ "track": "The House That Jack Built"
2277
+ },
2278
+ {
2279
+ "artist": "The Kooks",
2280
+ "track": "Mr. Nice Guy"
2281
+ },
2282
+ {
2283
+ "artist": "Muse",
2284
+ "track": "Uprising"
2285
+ },
2286
+ {
2287
+ "artist": "123",
2288
+ "track": "so much to say"
2289
+ },
2290
+ {
2291
+ "artist": "123",
2292
+ "track": "turuncu"
2293
+ },
2294
+ {
2295
+ "artist": "123",
2296
+ "track": "Again"
2297
+ },
2298
+ {
2299
+ "artist": "123",
2300
+ "track": "binalar"
2301
+ },
2302
+ {
2303
+ "artist": "123",
2304
+ "track": "sun in the arms of love"
2305
+ },
2306
+ {
2307
+ "artist": "Leonard Cohen",
2308
+ "track": "Dance Me To The End Of Love"
2309
+ },
2310
+ {
2311
+ "artist": "Roy Hargrove",
2312
+ "track": "I'm Not So Sure"
2313
+ },
2314
+ {
2315
+ "artist": "Johnnie Taylor",
2316
+ "track": "Running Out Of Lies"
2317
+ },
2318
+ {
2319
+ "artist": "Roy Hargrove",
2320
+ "track": "Strasbourg / St. Denis"
2321
+ },
2322
+ {
2323
+ "artist": "Damian Marley",
2324
+ "track": "Road To Zion"
2325
+ },
2326
+ {
2327
+ "artist": "Bob Marley & The Wailers",
2328
+ "track": "Buffalo Soldier"
2329
+ },
2330
+ {
2331
+ "artist": "Depeche Mode",
2332
+ "track": "Personal Jesus - 2006 Digital Remaster"
2333
+ },
2334
+ {
2335
+ "artist": "Daft Punk",
2336
+ "track": "Lose Yourself to Dance (feat. Pharrell Williams)"
2337
+ },
2338
+ {
2339
+ "artist": "Mark Isham",
2340
+ "track": "Our Eyes Aren't What Make Us See"
2341
+ },
2342
+ {
2343
+ "artist": "Elvis Presley",
2344
+ "track": "Blue Suede Shoes"
2345
+ },
2346
+ {
2347
+ "artist": "Coldplay",
2348
+ "track": "Atlas - From \u201cThe Hunger Games: Catching Fire\u201d/Soundtrack"
2349
+ },
2350
+ {
2351
+ "artist": "Coldplay",
2352
+ "track": "Yellow"
2353
+ },
2354
+ {
2355
+ "artist": "Coldplay",
2356
+ "track": "Warning Sign"
2357
+ },
2358
+ {
2359
+ "artist": "Coldplay",
2360
+ "track": "The Scientist"
2361
+ },
2362
+ {
2363
+ "artist": "Coldplay",
2364
+ "track": "In My Place"
2365
+ },
2366
+ {
2367
+ "artist": "Coldplay",
2368
+ "track": "Twisted Logic"
2369
+ },
2370
+ {
2371
+ "artist": "Coldplay",
2372
+ "track": "The Hardest Part"
2373
+ },
2374
+ {
2375
+ "artist": "Coldplay",
2376
+ "track": "Speed of Sound"
2377
+ },
2378
+ {
2379
+ "artist": "Coldplay",
2380
+ "track": "Talk"
2381
+ },
2382
+ {
2383
+ "artist": "Coldplay",
2384
+ "track": "Fix You"
2385
+ },
2386
+ {
2387
+ "artist": "Coldplay",
2388
+ "track": "White Shadows"
2389
+ },
2390
+ {
2391
+ "artist": "Coldplay",
2392
+ "track": "What If"
2393
+ },
2394
+ {
2395
+ "artist": "Coldplay",
2396
+ "track": "Square One"
2397
+ },
2398
+ {
2399
+ "artist": "Coldplay",
2400
+ "track": "Violet Hill"
2401
+ },
2402
+ {
2403
+ "artist": "Coldplay",
2404
+ "track": "Yes"
2405
+ },
2406
+ {
2407
+ "artist": "Coldplay",
2408
+ "track": "Lost!"
2409
+ },
2410
+ {
2411
+ "artist": "Santana",
2412
+ "track": "Black Magic Woman"
2413
+ },
2414
+ {
2415
+ "artist": "Santana",
2416
+ "track": "Smooth"
2417
+ },
2418
+ {
2419
+ "artist": "Maroon 5",
2420
+ "track": "Harder To Breathe"
2421
+ },
2422
+ {
2423
+ "artist": "MIKA",
2424
+ "track": "Grace Kelly"
2425
+ },
2426
+ {
2427
+ "artist": "Enya",
2428
+ "track": "May It Be"
2429
+ },
2430
+ {
2431
+ "artist": "Enya",
2432
+ "track": "Only Time"
2433
+ },
2434
+ {
2435
+ "artist": "Queen",
2436
+ "track": "It's A Hard Life - Remastered 2011"
2437
+ },
2438
+ {
2439
+ "artist": "Queen",
2440
+ "track": "Good Old-Fashioned Lover Boy - Remastered 2011"
2441
+ },
2442
+ {
2443
+ "artist": "Queen",
2444
+ "track": "I Want To Break Free - Remastered 2011"
2445
+ },
2446
+ {
2447
+ "artist": "Queen",
2448
+ "track": "Bohemian Rhapsody - 2011 Remaster"
2449
+ },
2450
+ {
2451
+ "artist": "Queen",
2452
+ "track": "Fat Bottomed Girls - 2011 Remaster"
2453
+ },
2454
+ {
2455
+ "artist": "Adele",
2456
+ "track": "Don't You Remember"
2457
+ },
2458
+ {
2459
+ "artist": "Adele",
2460
+ "track": "Someone Like You"
2461
+ },
2462
+ {
2463
+ "artist": "Adele",
2464
+ "track": "Hometown Glory"
2465
+ },
2466
+ {
2467
+ "artist": "Iggy Pop",
2468
+ "track": "The Passenger"
2469
+ },
2470
+ {
2471
+ "artist": "Coldplay",
2472
+ "track": "Mylo Xyloto"
2473
+ },
2474
+ {
2475
+ "artist": "ABBA",
2476
+ "track": "Waterloo"
2477
+ },
2478
+ {
2479
+ "artist": "Guns N' Roses",
2480
+ "track": "Knockin' On Heaven's Door"
2481
+ },
2482
+ {
2483
+ "artist": "Train",
2484
+ "track": "Hey, Soul Sister"
2485
+ },
2486
+ {
2487
+ "artist": "The D\u00f8",
2488
+ "track": "Too Insistent"
2489
+ },
2490
+ {
2491
+ "artist": "Eric Clapton",
2492
+ "track": "Riding with the King"
2493
+ },
2494
+ {
2495
+ "artist": "Teoman",
2496
+ "track": "Papatya"
2497
+ },
2498
+ {
2499
+ "artist": "Agnes Obel",
2500
+ "track": "Riverside"
2501
+ },
2502
+ {
2503
+ "artist": "Lily Allen",
2504
+ "track": "Not Fair"
2505
+ },
2506
+ {
2507
+ "artist": "Lily Allen",
2508
+ "track": "Fuck You"
2509
+ },
2510
+ {
2511
+ "artist": "John Newman",
2512
+ "track": "Love Me Again"
2513
+ },
2514
+ {
2515
+ "artist": "Ya\u015far",
2516
+ "track": "Gel Benimle"
2517
+ },
2518
+ {
2519
+ "artist": "Ya\u015far",
2520
+ "track": "Kumral\u0131m"
2521
+ },
2522
+ {
2523
+ "artist": "Queen",
2524
+ "track": "I Want It All - Remastered 2011"
2525
+ },
2526
+ {
2527
+ "artist": "Selah Sue",
2528
+ "track": "This World"
2529
+ },
2530
+ {
2531
+ "artist": "Bon Jovi",
2532
+ "track": "You Give Love A Bad Name"
2533
+ },
2534
+ {
2535
+ "artist": "Bon Jovi",
2536
+ "track": "It's My Life"
2537
+ },
2538
+ {
2539
+ "artist": "Jack Johnson",
2540
+ "track": "Never Know"
2541
+ },
2542
+ {
2543
+ "artist": "The Rolling Stones",
2544
+ "track": "Gimme Shelter"
2545
+ },
2546
+ {
2547
+ "artist": "The Rolling Stones",
2548
+ "track": "Paint It Black"
2549
+ },
2550
+ {
2551
+ "artist": "Edward Sharpe & The Magnetic Zeros",
2552
+ "track": "Home"
2553
+ },
2554
+ {
2555
+ "artist": "Nirvana",
2556
+ "track": "Smells Like Teen Spirit"
2557
+ },
2558
+ {
2559
+ "artist": "Arctic Monkeys",
2560
+ "track": "Do I Wanna Know?"
2561
+ }
2562
+ ]
data/json/youtube_data.json CHANGED
The diff for this file is too large to render. See raw diff
 
notebook.ipynb ADDED
@@ -0,0 +1,2256 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": 1,
6
+ "metadata": {},
7
+ "outputs": [],
8
+ "source": [
9
+ "%load_ext autoreload\n",
10
+ "%autoreload 2"
11
+ ]
12
+ },
13
+ {
14
+ "cell_type": "code",
15
+ "execution_count": 99,
16
+ "metadata": {},
17
+ "outputs": [],
18
+ "source": [
19
+ "import numpy as np\n",
20
+ "import librosa\n",
21
+ "import torch\n",
22
+ "from src import laion_clap\n",
23
+ "from glob import glob\n",
24
+ "import pandas as pd\n",
25
+ "import jmespath"
26
+ ]
27
+ },
28
+ {
29
+ "cell_type": "code",
30
+ "execution_count": 54,
31
+ "metadata": {},
32
+ "outputs": [],
33
+ "source": [
34
+ "# quantization\n",
35
+ "def int16_to_float32(x):\n",
36
+ " return (x / 32767.0).astype(np.float32)\n",
37
+ "\n",
38
+ "\n",
39
+ "def float32_to_int16(x):\n",
40
+ " x = np.clip(x, a_min=-1., a_max=1.)\n",
41
+ " return (x * 32767.).astype(np.int16)"
42
+ ]
43
+ },
44
+ {
45
+ "cell_type": "code",
46
+ "execution_count": null,
47
+ "metadata": {},
48
+ "outputs": [],
49
+ "source": [
50
+ "model = laion_clap.CLAP_Module(enable_fusion=False, amodel= 'HTSAT-base')\n",
51
+ "model.load_ckpt(ckpt=\"/Users/berkayg/Codes/music-project/laion-clap-project/curate-me-a-playlist/model_checkpoints/music_audioset_epoch_15_esc_90.14.pt\")"
52
+ ]
53
+ },
54
+ {
55
+ "cell_type": "code",
56
+ "execution_count": 55,
57
+ "metadata": {},
58
+ "outputs": [],
59
+ "source": [
60
+ "def load_music_file(file_name):\n",
61
+ " audio_data, _ = librosa.load(file_name, sr=48000) # sample rate should be 48000\n",
62
+ " audio_data = audio_data.reshape(1, -1) # Make it (1,T) or (N,T)\n",
63
+ " # audio_data = torch.from_numpy(int16_to_float32(float32_to_int16(audio_data))).float() # quantize before send it in to the model\n",
64
+ " with torch.no_grad():\n",
65
+ " audio_embed = model.get_audio_embedding_from_data(x = audio_data, use_tensor=False)\n",
66
+ " return audio_embed\n"
67
+ ]
68
+ },
69
+ {
70
+ "cell_type": "code",
71
+ "execution_count": 54,
72
+ "metadata": {},
73
+ "outputs": [],
74
+ "source": [
75
+ "with open(\"/Users/berkayg/Codes/music-project/laion-clap-project/curate-me-a-playlist/data/json/final_track_data.json\", \"r\") as reader:\n",
76
+ " track_data = json.load(reader)"
77
+ ]
78
+ },
79
+ {
80
+ "cell_type": "code",
81
+ "execution_count": 4,
82
+ "metadata": {},
83
+ "outputs": [],
84
+ "source": [
85
+ "music_files = glob(\"/Users/berkayg/Codes/music-project/AudioCLIP/data/downloaded_tracks/*.wav\")"
86
+ ]
87
+ },
88
+ {
89
+ "cell_type": "code",
90
+ "execution_count": 5,
91
+ "metadata": {},
92
+ "outputs": [],
93
+ "source": [
94
+ "import pickle\n",
95
+ "with open(\"/Users/berkayg/Codes/music-project/laion-clap-project/curate-me-a-playlist/data/vectors/song_names.pkl\", \"rb\") as reader:\n",
96
+ " ls = pickle.load(reader)\n"
97
+ ]
98
+ },
99
+ {
100
+ "cell_type": "code",
101
+ "execution_count": 69,
102
+ "metadata": {},
103
+ "outputs": [
104
+ {
105
+ "name": "stderr",
106
+ "output_type": "stream",
107
+ "text": [
108
+ "/var/folders/sr/r72219hj06x_1xvw7hhd517h0000gn/T/ipykernel_39391/3009710654.py:2: UserWarning: PySoundFile failed. Trying audioread instead.\n",
109
+ " audio_data, _ = librosa.load(file_name, sr=48000) # sample rate should be 48000\n",
110
+ "/Users/berkayg/miniforge3/envs/playlist-curator/lib/python3.10/site-packages/librosa/core/audio.py:183: FutureWarning: librosa.core.audio.__audioread_load\n",
111
+ "\tDeprecated as of librosa version 0.10.0.\n",
112
+ "\tIt will be removed in librosa version 1.0.\n",
113
+ " y, sr_native = __audioread_load(path, offset, duration, dtype)\n"
114
+ ]
115
+ }
116
+ ],
117
+ "source": [
118
+ "music_data = np.zeros((len(track_data), 512), dtype=np.float32)\n",
119
+ "track_data_new = []\n",
120
+ "idx = 0\n",
121
+ "for m in track_data:\n",
122
+ " if m[\"file_path\"]:\n",
123
+ " music_data[idx] = load_music_file(m[\"file_path\"])\n",
124
+ " dc = m.copy()\n",
125
+ " dc.update({\"vector_idx\": idx})\n",
126
+ " track_data_new.append(dc)\n",
127
+ " idx += 1\n"
128
+ ]
129
+ },
130
+ {
131
+ "cell_type": "code",
132
+ "execution_count": 105,
133
+ "metadata": {},
134
+ "outputs": [],
135
+ "source": [
136
+ "vector_db_data = track_data_new.copy()\n",
137
+ "vector_db_data.sort(key=lambda x: x[\"vector_idx\"])\n",
138
+ "vector_ids = [f\"audio_{k['vector_idx']}\" for k in vector_db_data]\n",
139
+ "vector_indices = [k[\"vector_idx\"] for k in vector_db_data]\n",
140
+ "vector_db_data = jmespath.search(\"[*].{artist_name: artist_name, track_name: track_name, title: title, link: link, vector_idx: vector_idx}\", vector_db_data)"
141
+ ]
142
+ },
143
+ {
144
+ "cell_type": "code",
145
+ "execution_count": 110,
146
+ "metadata": {},
147
+ "outputs": [],
148
+ "source": [
149
+ "from chromadb import Documents, EmbeddingFunction, Embeddings\n",
150
+ "\n",
151
+ "class CuratorTextEmbedding(EmbeddingFunction):\n",
152
+ " def __call__(self, text: Documents) -> Embeddings:\n",
153
+ " # embed the documents somehow\n",
154
+ " return embeddings"
155
+ ]
156
+ },
157
+ {
158
+ "cell_type": "code",
159
+ "execution_count": 6,
160
+ "metadata": {},
161
+ "outputs": [],
162
+ "source": [
163
+ "import chromadb\n",
164
+ "chroma_client = chromadb.Client()"
165
+ ]
166
+ },
167
+ {
168
+ "cell_type": "code",
169
+ "execution_count": 166,
170
+ "metadata": {},
171
+ "outputs": [],
172
+ "source": [
173
+ "chroma_client.delete_collection(name=\"playlist_collection\")\n",
174
+ "collection = chroma_client.create_collection(name=\"playlist_collection\", metadata={\"hnsw:space\": \"ip\"})"
175
+ ]
176
+ },
177
+ {
178
+ "cell_type": "code",
179
+ "execution_count": 167,
180
+ "metadata": {},
181
+ "outputs": [],
182
+ "source": [
183
+ "collection.add(\n",
184
+ " embeddings=music_data[vector_indices].tolist(),\n",
185
+ " metadatas=vector_db_data,\n",
186
+ " ids=vector_ids\n",
187
+ " )"
188
+ ]
189
+ },
190
+ {
191
+ "cell_type": "code",
192
+ "execution_count": 172,
193
+ "metadata": {},
194
+ "outputs": [
195
+ {
196
+ "name": "stdout",
197
+ "output_type": "stream",
198
+ "text": [
199
+ "\u001b[0;31mSignature:\u001b[0m\n",
200
+ "\u001b[0mcollection\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mquery\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n",
201
+ "\u001b[0;34m\u001b[0m \u001b[0mquery_embeddings\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mUnion\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mSequence\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mfloat\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mSequence\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mint\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mList\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mUnion\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mSequence\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mfloat\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mSequence\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mint\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mNoneType\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
202
+ "\u001b[0;34m\u001b[0m \u001b[0mquery_texts\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mUnion\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mstr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mList\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mstr\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mNoneType\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
203
+ "\u001b[0;34m\u001b[0m \u001b[0mquery_images\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mUnion\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mnumpy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mndarray\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mAny\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnumpy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mUnion\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mnumpy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0muint64\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnumpy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mint64\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnumpy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfloat64\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mList\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mnumpy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mndarray\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mAny\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnumpy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mUnion\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mnumpy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0muint64\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnumpy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mint64\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnumpy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfloat64\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mNoneType\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
204
+ "\u001b[0;34m\u001b[0m \u001b[0mquery_uris\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mUnion\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mstr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mList\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mstr\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mNoneType\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
205
+ "\u001b[0;34m\u001b[0m \u001b[0mn_results\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mint\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m10\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
206
+ "\u001b[0;34m\u001b[0m \u001b[0mwhere\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mOptional\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mDict\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mUnion\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mstr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mLiteral\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'$and'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mLiteral\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'$or'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mUnion\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mstr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfloat\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbool\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mDict\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mUnion\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mLiteral\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'$gt'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mLiteral\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'$gte'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mLiteral\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'$lt'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mLiteral\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'$lte'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mLiteral\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'$ne'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mLiteral\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'$eq'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mLiteral\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'$and'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mLiteral\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'$or'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mUnion\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mstr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfloat\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbool\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mDict\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mUnion\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mLiteral\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'$in'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mLiteral\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'$nin'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mList\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mUnion\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mstr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfloat\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbool\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mList\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mForwardRef\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'Where'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
207
+ "\u001b[0;34m\u001b[0m \u001b[0mwhere_document\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mOptional\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mDict\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mUnion\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mLiteral\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'$contains'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mLiteral\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'$and'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mLiteral\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'$or'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mUnion\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mstr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mList\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mForwardRef\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'WhereDocument'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
208
+ "\u001b[0;34m\u001b[0m \u001b[0minclude\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mList\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mUnion\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mLiteral\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'documents'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mLiteral\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'embeddings'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mLiteral\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'metadatas'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mLiteral\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'distances'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mLiteral\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'uris'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mLiteral\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'data'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m'metadatas'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'documents'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'distances'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
209
+ "\u001b[0;34m\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0mchromadb\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mapi\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtypes\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mQueryResult\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
210
+ "\u001b[0;31mDocstring:\u001b[0m\n",
211
+ "Get the n_results nearest neighbor embeddings for provided query_embeddings or query_texts.\n",
212
+ "\n",
213
+ "Args:\n",
214
+ " query_embeddings: The embeddings to get the closes neighbors of. Optional.\n",
215
+ " query_texts: The document texts to get the closes neighbors of. Optional.\n",
216
+ " query_images: The images to get the closes neighbors of. Optional.\n",
217
+ " n_results: The number of neighbors to return for each query_embedding or query_texts. Optional.\n",
218
+ " where: A Where type dict used to filter results by. E.g. `{\"$and\": [\"color\" : \"red\", \"price\": {\"$gte\": 4.20}]}`. Optional.\n",
219
+ " where_document: A WhereDocument type dict used to filter by the documents. E.g. `{$contains: {\"text\": \"hello\"}}`. Optional.\n",
220
+ " include: A list of what to include in the results. Can contain `\"embeddings\"`, `\"metadatas\"`, `\"documents\"`, `\"distances\"`. Ids are always included. Defaults to `[\"metadatas\", \"documents\", \"distances\"]`. Optional.\n",
221
+ "\n",
222
+ "Returns:\n",
223
+ " QueryResult: A QueryResult object containing the results.\n",
224
+ "\n",
225
+ "Raises:\n",
226
+ " ValueError: If you don't provide either query_embeddings, query_texts, or query_images\n",
227
+ " ValueError: If you provide both query_embeddings and query_texts\n",
228
+ " ValueError: If you provide both query_embeddings and query_images\n",
229
+ " ValueError: If you provide both query_texts and query_images\n",
230
+ "\u001b[0;31mFile:\u001b[0m ~/miniforge3/envs/playlist-curator/lib/python3.10/site-packages/chromadb/api/models/Collection.py\n",
231
+ "\u001b[0;31mType:\u001b[0m method"
232
+ ]
233
+ }
234
+ ],
235
+ "source": [
236
+ "collection.query?"
237
+ ]
238
+ },
239
+ {
240
+ "cell_type": "code",
241
+ "execution_count": 173,
242
+ "metadata": {},
243
+ "outputs": [
244
+ {
245
+ "data": {
246
+ "text/plain": [
247
+ "{'ids': [['audio_292',\n",
248
+ " 'audio_481',\n",
249
+ " 'audio_298',\n",
250
+ " 'audio_474',\n",
251
+ " 'audio_121',\n",
252
+ " 'audio_476',\n",
253
+ " 'audio_337',\n",
254
+ " 'audio_472',\n",
255
+ " 'audio_225',\n",
256
+ " 'audio_482']],\n",
257
+ " 'distances': [[0.6302633285522461,\n",
258
+ " 0.6571106910705566,\n",
259
+ " 0.6896730661392212,\n",
260
+ " 0.7028166055679321,\n",
261
+ " 0.7428299784660339,\n",
262
+ " 0.7440136671066284,\n",
263
+ " 0.7793576717376709,\n",
264
+ " 0.7837952971458435,\n",
265
+ " 0.8032999038696289,\n",
266
+ " 0.8056029081344604]],\n",
267
+ " 'metadatas': [[{'artist_name': 'Coldplay',\n",
268
+ " 'link': 'https://www.youtube.com/watch?v=kcASPx3-HuI',\n",
269
+ " 'title': 'Coldplay - Trouble (Official video)',\n",
270
+ " 'track_name': 'Trouble',\n",
271
+ " 'vector_idx': 292},\n",
272
+ " {'artist_name': 'Coldplay',\n",
273
+ " 'link': 'https://www.youtube.com/watch?v=k4V3Mo61fJM',\n",
274
+ " 'title': 'Coldplay - Fix You (Official Video)',\n",
275
+ " 'track_name': 'Fix You',\n",
276
+ " 'vector_idx': 481},\n",
277
+ " {'artist_name': 'Coldplay',\n",
278
+ " 'link': 'https://www.youtube.com/watch?v=57rEQZiklxQ',\n",
279
+ " 'title': 'See You Soon',\n",
280
+ " 'track_name': 'See You Soon',\n",
281
+ " 'vector_idx': 298},\n",
282
+ " {'artist_name': 'Coldplay',\n",
283
+ " 'link': 'https://www.youtube.com/watch?v=xtQirM784oM',\n",
284
+ " 'title': 'Warning Sign',\n",
285
+ " 'track_name': 'Warning Sign',\n",
286
+ " 'vector_idx': 474},\n",
287
+ " {'artist_name': 'Coldplay',\n",
288
+ " 'link': 'https://www.youtube.com/watch?v=BPNTC7uZYrI',\n",
289
+ " 'title': 'Coldplay - Up&Up (Official Video)',\n",
290
+ " 'track_name': 'Up&Up',\n",
291
+ " 'vector_idx': 121},\n",
292
+ " {'artist_name': 'Coldplay',\n",
293
+ " 'link': 'https://www.youtube.com/watch?v=gnIZ7RMuLpU',\n",
294
+ " 'title': 'Coldplay - In My Place (Official 4K Video)',\n",
295
+ " 'track_name': 'In My Place',\n",
296
+ " 'vector_idx': 476},\n",
297
+ " {'artist_name': 'Coldplay',\n",
298
+ " 'link': 'https://www.youtube.com/watch?v=z1rYmzQ8C9Q',\n",
299
+ " 'title': 'Coldplay - Christmas Lights (Official Video)',\n",
300
+ " 'track_name': 'Christmas Lights',\n",
301
+ " 'vector_idx': 337},\n",
302
+ " {'artist_name': 'Coldplay',\n",
303
+ " 'link': 'https://www.youtube.com/watch?v=Lh3TokLzzmw',\n",
304
+ " 'title': 'Coldplay - Atlas (Hunger Games: Catching Fire)(Official Lyric Video)',\n",
305
+ " 'track_name': 'Atlas - From “The Hunger Games: Catching Fire”/Soundtrack',\n",
306
+ " 'vector_idx': 472},\n",
307
+ " {'artist_name': 'Coldplay',\n",
308
+ " 'link': 'https://www.youtube.com/watch?v=1Uw6ZkbsAH8',\n",
309
+ " 'title': 'Coldplay - Princess Of China ft. Rihanna (Official Video)',\n",
310
+ " 'track_name': 'Princess of China',\n",
311
+ " 'vector_idx': 225},\n",
312
+ " {'artist_name': 'Coldplay',\n",
313
+ " 'link': 'https://www.youtube.com/watch?v=EhC_c7p50so',\n",
314
+ " 'title': 'White Shadows',\n",
315
+ " 'track_name': 'White Shadows',\n",
316
+ " 'vector_idx': 482}]],\n",
317
+ " 'embeddings': None,\n",
318
+ " 'documents': [[None, None, None, None, None, None, None, None, None, None]],\n",
319
+ " 'uris': None,\n",
320
+ " 'data': None}"
321
+ ]
322
+ },
323
+ "execution_count": 173,
324
+ "metadata": {},
325
+ "output_type": "execute_result"
326
+ }
327
+ ],
328
+ "source": [
329
+ "text_data = [\"romantic, depressing\"] \n",
330
+ "text_embed = model.get_text_embedding(text_data)\n",
331
+ "collection.query(query_embeddings=text_embed.tolist(), n_results=10, where={\"artist_name\": \"Coldplay\"})"
332
+ ]
333
+ },
334
+ {
335
+ "cell_type": "code",
336
+ "execution_count": null,
337
+ "metadata": {},
338
+ "outputs": [],
339
+ "source": []
340
+ },
341
+ {
342
+ "cell_type": "code",
343
+ "execution_count": 111,
344
+ "metadata": {},
345
+ "outputs": [
346
+ {
347
+ "name": "stdout",
348
+ "output_type": "stream",
349
+ "text": [
350
+ "(1, 512)\n"
351
+ ]
352
+ }
353
+ ],
354
+ "source": [
355
+ "text_data = [\"This audio is an energetic, uplifting song\"] \n",
356
+ "text_embed = model.get_text_embedding(text_data)\n",
357
+ "print(text_embed.shape)"
358
+ ]
359
+ },
360
+ {
361
+ "cell_type": "code",
362
+ "execution_count": 6,
363
+ "metadata": {},
364
+ "outputs": [],
365
+ "source": [
366
+ "song_names = [k.split(\"/\")[-1] for k in music_files]"
367
+ ]
368
+ },
369
+ {
370
+ "cell_type": "code",
371
+ "execution_count": 52,
372
+ "metadata": {},
373
+ "outputs": [
374
+ {
375
+ "name": "stdout",
376
+ "output_type": "stream",
377
+ "text": [
378
+ "torch.Size([630, 1])\n"
379
+ ]
380
+ }
381
+ ],
382
+ "source": [
383
+ "ranking = torch.tensor(audio_vectors) @ torch.tensor(text_embed).t()\n",
384
+ "ranking = ranking[:, 0].reshape(-1, 1)\n",
385
+ "print(ranking.shape)"
386
+ ]
387
+ },
388
+ {
389
+ "cell_type": "code",
390
+ "execution_count": 53,
391
+ "metadata": {},
392
+ "outputs": [
393
+ {
394
+ "data": {
395
+ "text/html": [
396
+ "<div>\n",
397
+ "<style scoped>\n",
398
+ " .dataframe tbody tr th:only-of-type {\n",
399
+ " vertical-align: middle;\n",
400
+ " }\n",
401
+ "\n",
402
+ " .dataframe tbody tr th {\n",
403
+ " vertical-align: top;\n",
404
+ " }\n",
405
+ "\n",
406
+ " .dataframe thead th {\n",
407
+ " text-align: right;\n",
408
+ " }\n",
409
+ "</style>\n",
410
+ "<table border=\"1\" class=\"dataframe\">\n",
411
+ " <thead>\n",
412
+ " <tr style=\"text-align: right;\">\n",
413
+ " <th></th>\n",
414
+ " <th>This audio is an energetic, uplifting song</th>\n",
415
+ " </tr>\n",
416
+ " </thead>\n",
417
+ " <tbody>\n",
418
+ " <tr>\n",
419
+ " <th>Ciara - Can't Leave 'Em Alone (feat. 50 Cent).wav</th>\n",
420
+ " <td>0.423258</td>\n",
421
+ " </tr>\n",
422
+ " <tr>\n",
423
+ " <th>The Weeknd - Blinding Lights.wav</th>\n",
424
+ " <td>0.415049</td>\n",
425
+ " </tr>\n",
426
+ " <tr>\n",
427
+ " <th>Stromae - Tous les mêmes.wav</th>\n",
428
+ " <td>0.412208</td>\n",
429
+ " </tr>\n",
430
+ " <tr>\n",
431
+ " <th>Empire of the Sun - Alive.wav</th>\n",
432
+ " <td>0.373571</td>\n",
433
+ " </tr>\n",
434
+ " <tr>\n",
435
+ " <th>Kylie Minogue - Chocolate.wav</th>\n",
436
+ " <td>0.348002</td>\n",
437
+ " </tr>\n",
438
+ " <tr>\n",
439
+ " <th>Sia - Elastic Heart.wav</th>\n",
440
+ " <td>0.334062</td>\n",
441
+ " </tr>\n",
442
+ " <tr>\n",
443
+ " <th>Sia - Chandelier.wav</th>\n",
444
+ " <td>0.330263</td>\n",
445
+ " </tr>\n",
446
+ " <tr>\n",
447
+ " <th>Stevie Wonder - Signed, Sealed, Delivered (I'm Yours).wav</th>\n",
448
+ " <td>0.324698</td>\n",
449
+ " </tr>\n",
450
+ " <tr>\n",
451
+ " <th>Coldplay - Princess of China.wav</th>\n",
452
+ " <td>0.319533</td>\n",
453
+ " </tr>\n",
454
+ " <tr>\n",
455
+ " <th>Florence + The Machine - Spectrum (Say My Name) - Calvin Harris Remix.wav</th>\n",
456
+ " <td>0.315443</td>\n",
457
+ " </tr>\n",
458
+ " <tr>\n",
459
+ " <th>Coldplay - True Love.wav</th>\n",
460
+ " <td>0.308231</td>\n",
461
+ " </tr>\n",
462
+ " <tr>\n",
463
+ " <th>Coldplay - Talk.wav</th>\n",
464
+ " <td>0.307894</td>\n",
465
+ " </tr>\n",
466
+ " <tr>\n",
467
+ " <th>Lily Allen - Not Fair.wav</th>\n",
468
+ " <td>0.300576</td>\n",
469
+ " </tr>\n",
470
+ " <tr>\n",
471
+ " <th>Andru Donalds - Mishale.wav</th>\n",
472
+ " <td>0.296594</td>\n",
473
+ " </tr>\n",
474
+ " <tr>\n",
475
+ " <th>Linkin Park - Numb.wav</th>\n",
476
+ " <td>0.294131</td>\n",
477
+ " </tr>\n",
478
+ " </tbody>\n",
479
+ "</table>\n",
480
+ "</div>"
481
+ ],
482
+ "text/plain": [
483
+ " This audio is an energetic, uplifting song\n",
484
+ "Ciara - Can't Leave 'Em Alone (feat. 50 Cent).wav 0.423258\n",
485
+ "The Weeknd - Blinding Lights.wav 0.415049\n",
486
+ "Stromae - Tous les mêmes.wav 0.412208\n",
487
+ "Empire of the Sun - Alive.wav 0.373571\n",
488
+ "Kylie Minogue - Chocolate.wav 0.348002\n",
489
+ "Sia - Elastic Heart.wav 0.334062\n",
490
+ "Sia - Chandelier.wav 0.330263\n",
491
+ "Stevie Wonder - Signed, Sealed, Delivered (I'm ... 0.324698\n",
492
+ "Coldplay - Princess of China.wav 0.319533\n",
493
+ "Florence + The Machine - Spectrum (Say My Name)... 0.315443\n",
494
+ "Coldplay - True Love.wav 0.308231\n",
495
+ "Coldplay - Talk.wav 0.307894\n",
496
+ "Lily Allen - Not Fair.wav 0.300576\n",
497
+ "Andru Donalds - Mishale.wav 0.296594\n",
498
+ "Linkin Park - Numb.wav 0.294131"
499
+ ]
500
+ },
501
+ "execution_count": 53,
502
+ "metadata": {},
503
+ "output_type": "execute_result"
504
+ }
505
+ ],
506
+ "source": [
507
+ "pd.DataFrame(ranking, columns=[text_data[0]], index=song_names).nlargest(15, text_data[0])"
508
+ ]
509
+ },
510
+ {
511
+ "cell_type": "code",
512
+ "execution_count": 7,
513
+ "metadata": {},
514
+ "outputs": [],
515
+ "source": [
516
+ "import json\n",
517
+ "import pickle\n",
518
+ "def load_data():\n",
519
+ " vectors = np.load(\"/Users/berkayg/Codes/music-project/laion-clap-project/curate-me-a-playlist/data/vectors/audio_representations.npy\")\n",
520
+ " with open(\"/Users/berkayg/Codes/music-project/laion-clap-project/curate-me-a-playlist/data/vectors/song_names.pkl\", \"rb\") as reader:\n",
521
+ " song_names = pickle.load(reader)\n",
522
+ "\n",
523
+ " with open(\"/Users/berkayg/Codes/music-project/laion-clap-project/curate-me-a-playlist/data/json/youtube_data.json\", \"r\") as reader:\n",
524
+ " youtube_data = json.load(reader)\n",
525
+ "\n",
526
+ " df_youtube = pd.DataFrame(youtube_data)\n",
527
+ " df_youtube[\"id\"] = df_youtube[\"artist_name\"] + \" - \" + df_youtube[\"track_name\"] + \".wav\"\n",
528
+ " df_youtube.set_index(\"id\", inplace=True)\n",
529
+ " return vectors, song_names, df_youtube\n",
530
+ "audio_vectors, song_names, df_youtube = load_data()"
531
+ ]
532
+ },
533
+ {
534
+ "cell_type": "code",
535
+ "execution_count": 44,
536
+ "metadata": {},
537
+ "outputs": [],
538
+ "source": [
539
+ "from sklearn.manifold import TSNE\n",
540
+ "decomposer = TSNE(3)\n",
541
+ "audio_components = decomposer.fit_transform(np.vstack([audio_vectors, text_embed]))"
542
+ ]
543
+ },
544
+ {
545
+ "cell_type": "code",
546
+ "execution_count": 76,
547
+ "metadata": {},
548
+ "outputs": [
549
+ {
550
+ "data": {
551
+ "text/plain": [
552
+ "torch.Size([630, 1])"
553
+ ]
554
+ },
555
+ "execution_count": 76,
556
+ "metadata": {},
557
+ "output_type": "execute_result"
558
+ }
559
+ ],
560
+ "source": [
561
+ "import plotly.express as px\n",
562
+ "(torch.tensor(text_embed) / torch.linalg.norm(torch.tensor(text_embed), dim=-1, keepdim=True))\n",
563
+ "torch.linalg.norm(torch.tensor(audio_vectors), dim=-1, keepdim=True).shape"
564
+ ]
565
+ },
566
+ {
567
+ "cell_type": "code",
568
+ "execution_count": 48,
569
+ "metadata": {},
570
+ "outputs": [
571
+ {
572
+ "data": {
573
+ "text/plain": [
574
+ "array([[-0.0228844 , -0.01531727, -0.02099325, ..., 0.02487872,\n",
575
+ " -0.04954423, -0.00967047],\n",
576
+ " [ 0.05719518, -0.05181887, 0.02295402, ..., 0.04154928,\n",
577
+ " -0.01846843, 0.0015544 ],\n",
578
+ " [-0.01932843, -0.03254181, -0.02956614, ..., 0.04285421,\n",
579
+ " -0.00225228, -0.00785008],\n",
580
+ " ...,\n",
581
+ " [-0.05801252, 0.05521129, -0.06229992, ..., -0.02577653,\n",
582
+ " 0.01485025, -0.04933776],\n",
583
+ " [-0.01117569, 0.03371193, 0.03643309, ..., 0.03710453,\n",
584
+ " 0.06688339, 0.04197252],\n",
585
+ " [ 0.02041594, -0.00629344, -0.10389867, ..., -0.02280687,\n",
586
+ " -0.02982889, 0.03500484]], dtype=float32)"
587
+ ]
588
+ },
589
+ "execution_count": 48,
590
+ "metadata": {},
591
+ "output_type": "execute_result"
592
+ }
593
+ ],
594
+ "source": [
595
+ "np.vstack([audio_vectors, text_embed])"
596
+ ]
597
+ },
598
+ {
599
+ "cell_type": "code",
600
+ "execution_count": 45,
601
+ "metadata": {},
602
+ "outputs": [],
603
+ "source": [
604
+ "songs = song_names.copy()\n",
605
+ "songs.append(\"text_embedding\")"
606
+ ]
607
+ },
608
+ {
609
+ "cell_type": "code",
610
+ "execution_count": 46,
611
+ "metadata": {},
612
+ "outputs": [
613
+ {
614
+ "data": {
615
+ "text/html": [
616
+ "<div>\n",
617
+ "<style scoped>\n",
618
+ " .dataframe tbody tr th:only-of-type {\n",
619
+ " vertical-align: middle;\n",
620
+ " }\n",
621
+ "\n",
622
+ " .dataframe tbody tr th {\n",
623
+ " vertical-align: top;\n",
624
+ " }\n",
625
+ "\n",
626
+ " .dataframe thead th {\n",
627
+ " text-align: right;\n",
628
+ " }\n",
629
+ "</style>\n",
630
+ "<table border=\"1\" class=\"dataframe\">\n",
631
+ " <thead>\n",
632
+ " <tr style=\"text-align: right;\">\n",
633
+ " <th></th>\n",
634
+ " <th>0</th>\n",
635
+ " <th>1</th>\n",
636
+ " <th>2</th>\n",
637
+ " <th>song_names</th>\n",
638
+ " <th>is_text</th>\n",
639
+ " </tr>\n",
640
+ " </thead>\n",
641
+ " <tbody>\n",
642
+ " <tr>\n",
643
+ " <th>626</th>\n",
644
+ " <td>7.839409</td>\n",
645
+ " <td>-2.566209</td>\n",
646
+ " <td>25.651859</td>\n",
647
+ " <td>Wilson Pickett - Hey Joe.wav</td>\n",
648
+ " <td>False</td>\n",
649
+ " </tr>\n",
650
+ " <tr>\n",
651
+ " <th>627</th>\n",
652
+ " <td>25.030121</td>\n",
653
+ " <td>10.993256</td>\n",
654
+ " <td>2.521003</td>\n",
655
+ " <td>Bülent Ortaçgil - Değirmenler.wav</td>\n",
656
+ " <td>False</td>\n",
657
+ " </tr>\n",
658
+ " <tr>\n",
659
+ " <th>628</th>\n",
660
+ " <td>-11.422283</td>\n",
661
+ " <td>6.371774</td>\n",
662
+ " <td>-33.630165</td>\n",
663
+ " <td>Sufle - Köprüaltı.wav</td>\n",
664
+ " <td>False</td>\n",
665
+ " </tr>\n",
666
+ " <tr>\n",
667
+ " <th>629</th>\n",
668
+ " <td>-21.544903</td>\n",
669
+ " <td>7.802368</td>\n",
670
+ " <td>-11.589836</td>\n",
671
+ " <td>Keane - Somewhere Only We Know.wav</td>\n",
672
+ " <td>False</td>\n",
673
+ " </tr>\n",
674
+ " <tr>\n",
675
+ " <th>630</th>\n",
676
+ " <td>-32.042549</td>\n",
677
+ " <td>-20.397856</td>\n",
678
+ " <td>-20.176537</td>\n",
679
+ " <td>text_embedding</td>\n",
680
+ " <td>True</td>\n",
681
+ " </tr>\n",
682
+ " </tbody>\n",
683
+ "</table>\n",
684
+ "</div>"
685
+ ],
686
+ "text/plain": [
687
+ " 0 1 2 song_names \\\n",
688
+ "626 7.839409 -2.566209 25.651859 Wilson Pickett - Hey Joe.wav \n",
689
+ "627 25.030121 10.993256 2.521003 Bülent Ortaçgil - Değirmenler.wav \n",
690
+ "628 -11.422283 6.371774 -33.630165 Sufle - Köprüaltı.wav \n",
691
+ "629 -21.544903 7.802368 -11.589836 Keane - Somewhere Only We Know.wav \n",
692
+ "630 -32.042549 -20.397856 -20.176537 text_embedding \n",
693
+ "\n",
694
+ " is_text \n",
695
+ "626 False \n",
696
+ "627 False \n",
697
+ "628 False \n",
698
+ "629 False \n",
699
+ "630 True "
700
+ ]
701
+ },
702
+ "execution_count": 46,
703
+ "metadata": {},
704
+ "output_type": "execute_result"
705
+ }
706
+ ],
707
+ "source": [
708
+ "df_vectors = pd.DataFrame(audio_components).assign(song_names=songs, is_text=lambda x: x[\"song_names\"] == \"text_embedding\")\n",
709
+ "df_vectors.tail()"
710
+ ]
711
+ },
712
+ {
713
+ "cell_type": "code",
714
+ "execution_count": 47,
715
+ "metadata": {},
716
+ "outputs": [
717
+ {
718
+ "data": {
719
+ "application/vnd.plotly.v1+json": {
720
+ "config": {
721
+ "plotlyServerURL": "https://plot.ly"
722
+ },
723
+ "data": [
724
+ {
725
+ "customdata": [
726
+ [
727
+ "Teoman - Hayalperest.wav"
728
+ ],
729
+ [
730
+ "Jason Mraz - I'm Yours.wav"
731
+ ],
732
+ [
733
+ "AC_DC - Back In Black.wav"
734
+ ],
735
+ [
736
+ "Pirates Of New Providence - Dead Man's Chest.wav"
737
+ ],
738
+ [
739
+ "B.B. King - Ghetto Woman.wav"
740
+ ],
741
+ [
742
+ "Elle King - Playing For Keeps.wav"
743
+ ],
744
+ [
745
+ "Tame Impala - The Less I Know The Better.wav"
746
+ ],
747
+ [
748
+ "Procol Harum - A Whiter Shade Of Pale.wav"
749
+ ],
750
+ [
751
+ "Duman - Yanibasimdan.wav"
752
+ ],
753
+ [
754
+ "Coldplay - Adventure of a Lifetime.wav"
755
+ ],
756
+ [
757
+ "Müslüm Gürses - Affet.wav"
758
+ ],
759
+ [
760
+ "Stereo Avenue - Mad World.wav"
761
+ ],
762
+ [
763
+ "Coldplay - Sparks.wav"
764
+ ],
765
+ [
766
+ "Santana - Day of Celebration.wav"
767
+ ],
768
+ [
769
+ "Queen - I Want To Break Free - Remastered 2011.wav"
770
+ ],
771
+ [
772
+ "Guns N' Roses - This I Love.wav"
773
+ ],
774
+ [
775
+ "123 - binalar.wav"
776
+ ],
777
+ [
778
+ "Serena Ryder - Stompa.wav"
779
+ ],
780
+ [
781
+ "Passion Pit - Take a Walk.wav"
782
+ ],
783
+ [
784
+ "Marvin Gaye - Got To Give It Up - Pt. 1.wav"
785
+ ],
786
+ [
787
+ "Erik Truffaz - Let Me Go ! (feat. Sophie Hunger).wav"
788
+ ],
789
+ [
790
+ "Blonde Redhead - For the Damaged Coda.wav"
791
+ ],
792
+ [
793
+ "Israel Kamakawiwo'ole - Somewhere Over The Rainbow_What A Wonderful World.wav"
794
+ ],
795
+ [
796
+ "Daft Punk - Lose Yourself to Dance (feat. Pharrell Williams).wav"
797
+ ],
798
+ [
799
+ "Zülfü Livaneli - Gözlerin.wav"
800
+ ],
801
+ [
802
+ "Adamlar - İnsanın Düştüğü Durumlar.wav"
803
+ ],
804
+ [
805
+ "Foghat - Louisiana Blues.wav"
806
+ ],
807
+ [
808
+ "Amy Winehouse - Mr Magic (Through The Smoke).wav"
809
+ ],
810
+ [
811
+ "Pinhani - Dünyadan Uzak.wav"
812
+ ],
813
+ [
814
+ "Queen - Don't Stop Me Now - 2011 Remaster.wav"
815
+ ],
816
+ [
817
+ "Gevende - Sanki.wav"
818
+ ],
819
+ [
820
+ "Mirkelam - Hatıralar.wav"
821
+ ],
822
+ [
823
+ "Hüseyin Bitmez - Nazende Sevgilim.wav"
824
+ ],
825
+ [
826
+ "Sertab Erener - Kumsalda.wav"
827
+ ],
828
+ [
829
+ "Eric Clapton - Ramblin' on My Mind.wav"
830
+ ],
831
+ [
832
+ "Aretha Franklin - At Last.wav"
833
+ ],
834
+ [
835
+ "Bob Marley & The Wailers - No Woman, No Cry - Live At The Lyceum, London_1975.wav"
836
+ ],
837
+ [
838
+ "Maroon 5 - Harder To Breathe.wav"
839
+ ],
840
+ [
841
+ "James Brown - It's A Man's, Man's, Man's World - Mono.wav"
842
+ ],
843
+ [
844
+ "Buddy Guy - Mustang Sally (feat. Jeff Beck).wav"
845
+ ],
846
+ [
847
+ "Cem Karaca - Resimdeki Gözyaslari (Apaslar).wav"
848
+ ],
849
+ [
850
+ "Adamlar - Yanmış İçinden.wav"
851
+ ],
852
+ [
853
+ "Adamlar - Ah Benim Hayatım.wav"
854
+ ],
855
+ [
856
+ "Adamlar - Tın Tın.wav"
857
+ ],
858
+ [
859
+ "Ali Kızıltuğ - Sen Gel Diyorsun - Öf Öf.wav"
860
+ ],
861
+ [
862
+ "Wes Montgomery - In Your Own Sweet Way.wav"
863
+ ],
864
+ [
865
+ "Duman - Elleri Ellerime.wav"
866
+ ],
867
+ [
868
+ "Bob Marley & The Wailers - Three Little Birds.wav"
869
+ ],
870
+ [
871
+ "Bee Gees - Stayin' Alive - Remastered Version.wav"
872
+ ],
873
+ [
874
+ "Grover Washington, Jr. - Just the Two of Us.wav"
875
+ ],
876
+ [
877
+ "Queen - Save Me - 2011 Remaster.wav"
878
+ ],
879
+ [
880
+ "Adele - Hometown Glory.wav"
881
+ ],
882
+ [
883
+ "Dido - White Flag.wav"
884
+ ],
885
+ [
886
+ "Adamlar - Utanmazsan Unutmam.wav"
887
+ ],
888
+ [
889
+ "Dire Straits - Sultans Of Swing.wav"
890
+ ],
891
+ [
892
+ "Bülent Ortaçgil - Bozburun.wav"
893
+ ],
894
+ [
895
+ "Sting - Shape Of My Heart.wav"
896
+ ],
897
+ [
898
+ "Barcelona Gipsy Klezmer Orchestra - Hasta Siempre, Comandante.wav"
899
+ ],
900
+ [
901
+ "Jimi Hendrix - Purple Haze.wav"
902
+ ],
903
+ [
904
+ "Craig David - Rise & Fall - feat. Sting.wav"
905
+ ],
906
+ [
907
+ "Los Naranjos - Cantarte a Ti.wav"
908
+ ],
909
+ [
910
+ "Cem Karaca - Beni Siz Delirttiniz.wav"
911
+ ],
912
+ [
913
+ "Bob Dylan - You Belong To Me.wav"
914
+ ],
915
+ [
916
+ "Milky Chance - Stolen Dance.wav"
917
+ ],
918
+ [
919
+ "Nirvana - The Man Who Sold The World.wav"
920
+ ],
921
+ [
922
+ "Pink Floyd - Wish You Were Here - 2011 Remastered Version.wav"
923
+ ],
924
+ [
925
+ "Emilíana Torrini - Dead Duck.wav"
926
+ ],
927
+ [
928
+ "Johnnie Taylor - Running Out Of Lies.wav"
929
+ ],
930
+ [
931
+ "No Doubt - Don't Speak.wav"
932
+ ],
933
+ [
934
+ "Bob Marley & The Wailers - African Herbsman.wav"
935
+ ],
936
+ [
937
+ "MIKA - Grace Kelly.wav"
938
+ ],
939
+ [
940
+ "Coldplay - True Love.wav"
941
+ ],
942
+ [
943
+ "Enya - Only Time.wav"
944
+ ],
945
+ [
946
+ "Cem Karaca - Sevda Kuşun Kanadında.wav"
947
+ ],
948
+ [
949
+ "Replikas - Yaş Elli.wav"
950
+ ],
951
+ [
952
+ "John Mayer - New Light.wav"
953
+ ],
954
+ [
955
+ "Elvis Presley - All Shook Up.wav"
956
+ ],
957
+ [
958
+ "emir taha - Huyu Suyu.wav"
959
+ ],
960
+ [
961
+ "Foo Fighters - The Sky Is A Neighborhood.wav"
962
+ ],
963
+ [
964
+ "Lucio Quarantotto - Time To Say Goodbye (Con Te Partirò).wav"
965
+ ],
966
+ [
967
+ "123 - so much to say.wav"
968
+ ],
969
+ [
970
+ "fun. - We Are Young (feat. Janelle Monáe).wav"
971
+ ],
972
+ [
973
+ "Fallulah - I Lay My Head.wav"
974
+ ],
975
+ [
976
+ "TOTO - Hold the Line.wav"
977
+ ],
978
+ [
979
+ "Ray Charles - Mess Around.wav"
980
+ ],
981
+ [
982
+ "Queen - Innuendo - Remastered 2011.wav"
983
+ ],
984
+ [
985
+ "Aerosmith - Walk This Way.wav"
986
+ ],
987
+ [
988
+ "Foster The People - Pumped Up Kicks.wav"
989
+ ],
990
+ [
991
+ "Santana - Primavera.wav"
992
+ ],
993
+ [
994
+ "David Dallas - Runnin'.wav"
995
+ ],
996
+ [
997
+ "Eric Clapton - Worried Life Blues - Live; 2015 Remaster.wav"
998
+ ],
999
+ [
1000
+ "Coldplay - Warning Sign.wav"
1001
+ ],
1002
+ [
1003
+ "Joe Cocker - Unchain My Heart.wav"
1004
+ ],
1005
+ [
1006
+ "Nur Yoldas - Sultan-ı Yegah.wav"
1007
+ ],
1008
+ [
1009
+ "Nil Karaibrahimgil - Kanatlarım Var Ruhumda.wav"
1010
+ ],
1011
+ [
1012
+ "Wilson Pickett - Hey Joe.wav"
1013
+ ],
1014
+ [
1015
+ "Bülent Ortaçgil - Değirmenler.wav"
1016
+ ],
1017
+ [
1018
+ "Sufle - Köprüaltı.wav"
1019
+ ],
1020
+ [
1021
+ "Keane - Somewhere Only We Know.wav"
1022
+ ]
1023
+ ],
1024
+ "hovertemplate": "is_text=False<br>0=%{x}<br>1=%{y}<br>2=%{z}<br>song_names=%{customdata[0]}<extra></extra>",
1025
+ "legendgroup": "False",
1026
+ "marker": {
1027
+ "color": "#636efa",
1028
+ "opacity": 0.8,
1029
+ "symbol": "circle"
1030
+ },
1031
+ "mode": "markers",
1032
+ "name": "False",
1033
+ "scene": "scene",
1034
+ "showlegend": true,
1035
+ "type": "scatter3d",
1036
+ "x": [
1037
+ 3.960073471069336,
1038
+ 6.63026237487793,
1039
+ 6.366035461425781,
1040
+ 35.9576301574707,
1041
+ 25.72879409790039,
1042
+ -23.749359130859375,
1043
+ -18.918292999267578,
1044
+ 20.815343856811523,
1045
+ 3.548778533935547,
1046
+ -9.880792617797852,
1047
+ -1.626604676246643,
1048
+ -25.692523956298828,
1049
+ -9.009389877319336,
1050
+ 21.91187858581543,
1051
+ -8.398816108703613,
1052
+ -13.183920860290527,
1053
+ -16.33573341369629,
1054
+ -20.739084243774414,
1055
+ -16.058250427246094,
1056
+ -5.901383876800537,
1057
+ -29.334606170654297,
1058
+ -21.556638717651367,
1059
+ -32.477176666259766,
1060
+ -10.107562065124512,
1061
+ 2.0257608890533447,
1062
+ 3.539175510406494,
1063
+ 9.495028495788574,
1064
+ -8.56347370147705,
1065
+ 2.9173169136047363,
1066
+ 12.427820205688477,
1067
+ 22.154857635498047,
1068
+ -9.044797897338867,
1069
+ 24.114742279052734,
1070
+ -25.635881423950195,
1071
+ 19.347545623779297,
1072
+ -19.076709747314453,
1073
+ 17.552734375,
1074
+ -12.944130897521973,
1075
+ 29.22037696838379,
1076
+ 5.216680526733398,
1077
+ 4.647155284881592,
1078
+ -5.739335536956787,
1079
+ 1.2586489915847778,
1080
+ 9.793363571166992,
1081
+ 22.0106143951416,
1082
+ 28.065549850463867,
1083
+ 13.323224067687988,
1084
+ 6.095829010009766,
1085
+ -8.249640464782715,
1086
+ 5.1530609130859375,
1087
+ -22.9552001953125,
1088
+ -25.220529556274414,
1089
+ -17.555011749267578,
1090
+ 26.815658569335938,
1091
+ 6.869404315948486,
1092
+ 34.0200080871582,
1093
+ -10.640585899353027,
1094
+ -29.66428565979004,
1095
+ 16.96628761291504,
1096
+ -12.059541702270508,
1097
+ 18.312807083129883,
1098
+ 18.12636947631836,
1099
+ -0.4769120514392853,
1100
+ 11.270349502563477,
1101
+ 15.4771089553833,
1102
+ -9.384946823120117,
1103
+ 10.876140594482422,
1104
+ -3.506535053253174,
1105
+ -33.04511260986328,
1106
+ 21.82001304626465,
1107
+ -20.24302101135254,
1108
+ -21.872957229614258,
1109
+ -26.808494567871094,
1110
+ -4.571284770965576,
1111
+ 4.80881929397583,
1112
+ 16.436382293701172,
1113
+ 27.422374725341797,
1114
+ -26.98200035095215,
1115
+ -19.272430419921875,
1116
+ -20.390697479248047,
1117
+ -32.17781066894531,
1118
+ -30.004587173461914,
1119
+ -23.986347198486328,
1120
+ -3.3886325359344482,
1121
+ 31.404930114746094,
1122
+ -6.3269734382629395,
1123
+ 12.990680694580078,
1124
+ 3.9187815189361572,
1125
+ 4.270918369293213,
1126
+ -28.737621307373047,
1127
+ 26.91798210144043,
1128
+ -4.584568023681641,
1129
+ 25.394004821777344,
1130
+ -27.019210815429688,
1131
+ -24.920318603515625,
1132
+ 7.839408874511719,
1133
+ 25.030120849609375,
1134
+ -11.422283172607422,
1135
+ -21.544902801513672
1136
+ ],
1137
+ "y": [
1138
+ -6.303861141204834,
1139
+ 15.232268333435059,
1140
+ -18.639732360839844,
1141
+ 16.955612182617188,
1142
+ -4.059649467468262,
1143
+ 5.14973258972168,
1144
+ -2.5839288234710693,
1145
+ 0.775934636592865,
1146
+ -6.10317325592041,
1147
+ 0.692775309085846,
1148
+ -1.615648627281189,
1149
+ 4.755437850952148,
1150
+ -0.393994003534317,
1151
+ -19.156991958618164,
1152
+ 22.87925910949707,
1153
+ 11.058145523071289,
1154
+ 3.0950820446014404,
1155
+ 5.530603885650635,
1156
+ -3.080402374267578,
1157
+ 13.579002380371094,
1158
+ -4.78978157043457,
1159
+ 7.763420104980469,
1160
+ -7.65438985824585,
1161
+ 23.316055297851562,
1162
+ 24.696044921875,
1163
+ 3.7123682498931885,
1164
+ -21.037315368652344,
1165
+ 13.44579029083252,
1166
+ -2.354578733444214,
1167
+ -26.491195678710938,
1168
+ -18.70002555847168,
1169
+ 13.3438720703125,
1170
+ -2.367952823638916,
1171
+ 24.548198699951172,
1172
+ -17.782995223999023,
1173
+ 14.160982131958008,
1174
+ 22.661109924316406,
1175
+ -15.065990447998047,
1176
+ 14.719420433044434,
1177
+ -16.994403839111328,
1178
+ -2.528127431869507,
1179
+ -9.89771556854248,
1180
+ -6.246743202209473,
1181
+ 25.03219985961914,
1182
+ -1.4081578254699707,
1183
+ -2.3774948120117188,
1184
+ -27.25217056274414,
1185
+ 23.652070999145508,
1186
+ 16.401748657226562,
1187
+ 20.747957229614258,
1188
+ 14.122920036315918,
1189
+ 15.15066909790039,
1190
+ 19.500532150268555,
1191
+ 3.8085296154022217,
1192
+ -0.638141393661499,
1193
+ -6.328094482421875,
1194
+ 2.543947696685791,
1195
+ 24.652851104736328,
1196
+ -14.238359451293945,
1197
+ 19.87712287902832,
1198
+ 15.849624633789062,
1199
+ 9.969474792480469,
1200
+ 11.297757148742676,
1201
+ -18.961462020874023,
1202
+ -23.89181137084961,
1203
+ 6.338683128356934,
1204
+ -6.532224178314209,
1205
+ 8.980716705322266,
1206
+ 10.482304573059082,
1207
+ 19.634340286254883,
1208
+ -19.921180725097656,
1209
+ -18.082565307617188,
1210
+ -3.7091286182403564,
1211
+ 21.601825714111328,
1212
+ -21.571517944335938,
1213
+ -11.576738357543945,
1214
+ 19.804643630981445,
1215
+ -2.666598081588745,
1216
+ -23.158870697021484,
1217
+ -8.012092590332031,
1218
+ 14.015975952148438,
1219
+ 8.013833999633789,
1220
+ 13.031487464904785,
1221
+ 18.049388885498047,
1222
+ 7.4357523918151855,
1223
+ 15.054443359375,
1224
+ -21.247608184814453,
1225
+ 3.2007644176483154,
1226
+ 25.249967575073242,
1227
+ -8.995502471923828,
1228
+ -2.2580485343933105,
1229
+ -9.61690616607666,
1230
+ 22.74266242980957,
1231
+ 27.359724044799805,
1232
+ 16.42228126525879,
1233
+ -2.566208839416504,
1234
+ 10.993255615234375,
1235
+ 6.371773719787598,
1236
+ 7.8023681640625
1237
+ ],
1238
+ "z": [
1239
+ -4.585926055908203,
1240
+ 7.6198248863220215,
1241
+ 11.197002410888672,
1242
+ 10.61091423034668,
1243
+ -0.16559484601020813,
1244
+ 15.873065948486328,
1245
+ 6.092303276062012,
1246
+ 13.278153419494629,
1247
+ -13.814813613891602,
1248
+ -32.1518669128418,
1249
+ -2.846285104751587,
1250
+ -24.60615348815918,
1251
+ -14.583600044250488,
1252
+ -5.089763641357422,
1253
+ 17.827316284179688,
1254
+ -8.723794937133789,
1255
+ -0.46522191166877747,
1256
+ 22.079736709594727,
1257
+ -27.905847549438477,
1258
+ 26.410999298095703,
1259
+ -24.432289123535156,
1260
+ -29.81077766418457,
1261
+ -24.935848236083984,
1262
+ 14.596731185913086,
1263
+ -11.877199172973633,
1264
+ -23.376184463500977,
1265
+ 2.7458457946777344,
1266
+ 19.448259353637695,
1267
+ -7.996399879455566,
1268
+ 9.06856918334961,
1269
+ 1.2749879360198975,
1270
+ -12.594420433044434,
1271
+ -22.486719131469727,
1272
+ 2.873701572418213,
1273
+ -24.027612686157227,
1274
+ 2.2689332962036133,
1275
+ 21.957611083984375,
1276
+ 13.603313446044922,
1277
+ 16.907148361206055,
1278
+ 21.468961715698242,
1279
+ 23.266664505004883,
1280
+ 1.334670066833496,
1281
+ -9.798734664916992,
1282
+ 5.956639766693115,
1283
+ -24.757957458496094,
1284
+ -16.810287475585938,
1285
+ -0.19127635657787323,
1286
+ 17.18698501586914,
1287
+ 23.69522476196289,
1288
+ 11.511524200439453,
1289
+ -16.232465744018555,
1290
+ -11.024603843688965,
1291
+ 0.2891804277896881,
1292
+ 4.686855792999268,
1293
+ 4.955519676208496,
1294
+ -11.170580863952637,
1295
+ -9.173028945922852,
1296
+ 9.23276424407959,
1297
+ 20.439125061035156,
1298
+ -21.887910842895508,
1299
+ -25.068744659423828,
1300
+ -2.6079728603363037,
1301
+ -19.979209899902344,
1302
+ -16.800277709960938,
1303
+ -7.8158345222473145,
1304
+ -20.36083984375,
1305
+ -13.97440242767334,
1306
+ 13.297832489013672,
1307
+ 6.4031662940979,
1308
+ 16.68050193786621,
1309
+ -7.421001434326172,
1310
+ -20.746915817260742,
1311
+ -17.661420822143555,
1312
+ -16.111785888671875,
1313
+ -6.790570259094238,
1314
+ -10.68458080291748,
1315
+ 4.448904991149902,
1316
+ 5.806682586669922,
1317
+ -18.60723114013672,
1318
+ -32.03889465332031,
1319
+ -3.2083699703216553,
1320
+ 8.138893127441406,
1321
+ 10.776344299316406,
1322
+ 15.558555603027344,
1323
+ 14.651917457580566,
1324
+ -17.637117385864258,
1325
+ 20.528764724731445,
1326
+ 16.84113883972168,
1327
+ 10.138716697692871,
1328
+ 6.520318984985352,
1329
+ 8.3370361328125,
1330
+ -3.437776565551758,
1331
+ -6.115707874298096,
1332
+ -4.344021797180176,
1333
+ -2.9191675186157227,
1334
+ 25.651859283447266,
1335
+ 2.521003484725952,
1336
+ -33.630165100097656,
1337
+ -11.589836120605469
1338
+ ]
1339
+ },
1340
+ {
1341
+ "customdata": [
1342
+ [
1343
+ "text_embedding"
1344
+ ]
1345
+ ],
1346
+ "hovertemplate": "is_text=True<br>0=%{x}<br>1=%{y}<br>2=%{z}<br>song_names=%{customdata[0]}<extra></extra>",
1347
+ "legendgroup": "True",
1348
+ "marker": {
1349
+ "color": "#EF553B",
1350
+ "opacity": 0.8,
1351
+ "symbol": "circle"
1352
+ },
1353
+ "mode": "markers",
1354
+ "name": "True",
1355
+ "scene": "scene",
1356
+ "showlegend": true,
1357
+ "type": "scatter3d",
1358
+ "x": [
1359
+ -32.04254913330078
1360
+ ],
1361
+ "y": [
1362
+ -20.397855758666992
1363
+ ],
1364
+ "z": [
1365
+ -20.176536560058594
1366
+ ]
1367
+ }
1368
+ ],
1369
+ "layout": {
1370
+ "legend": {
1371
+ "title": {
1372
+ "text": "is_text"
1373
+ },
1374
+ "tracegroupgap": 0
1375
+ },
1376
+ "margin": {
1377
+ "t": 60
1378
+ },
1379
+ "scene": {
1380
+ "domain": {
1381
+ "x": [
1382
+ 0,
1383
+ 1
1384
+ ],
1385
+ "y": [
1386
+ 0,
1387
+ 1
1388
+ ]
1389
+ },
1390
+ "xaxis": {
1391
+ "title": {
1392
+ "text": "0"
1393
+ }
1394
+ },
1395
+ "yaxis": {
1396
+ "title": {
1397
+ "text": "1"
1398
+ }
1399
+ },
1400
+ "zaxis": {
1401
+ "title": {
1402
+ "text": "2"
1403
+ }
1404
+ }
1405
+ },
1406
+ "template": {
1407
+ "data": {
1408
+ "bar": [
1409
+ {
1410
+ "error_x": {
1411
+ "color": "#2a3f5f"
1412
+ },
1413
+ "error_y": {
1414
+ "color": "#2a3f5f"
1415
+ },
1416
+ "marker": {
1417
+ "line": {
1418
+ "color": "#E5ECF6",
1419
+ "width": 0.5
1420
+ },
1421
+ "pattern": {
1422
+ "fillmode": "overlay",
1423
+ "size": 10,
1424
+ "solidity": 0.2
1425
+ }
1426
+ },
1427
+ "type": "bar"
1428
+ }
1429
+ ],
1430
+ "barpolar": [
1431
+ {
1432
+ "marker": {
1433
+ "line": {
1434
+ "color": "#E5ECF6",
1435
+ "width": 0.5
1436
+ },
1437
+ "pattern": {
1438
+ "fillmode": "overlay",
1439
+ "size": 10,
1440
+ "solidity": 0.2
1441
+ }
1442
+ },
1443
+ "type": "barpolar"
1444
+ }
1445
+ ],
1446
+ "carpet": [
1447
+ {
1448
+ "aaxis": {
1449
+ "endlinecolor": "#2a3f5f",
1450
+ "gridcolor": "white",
1451
+ "linecolor": "white",
1452
+ "minorgridcolor": "white",
1453
+ "startlinecolor": "#2a3f5f"
1454
+ },
1455
+ "baxis": {
1456
+ "endlinecolor": "#2a3f5f",
1457
+ "gridcolor": "white",
1458
+ "linecolor": "white",
1459
+ "minorgridcolor": "white",
1460
+ "startlinecolor": "#2a3f5f"
1461
+ },
1462
+ "type": "carpet"
1463
+ }
1464
+ ],
1465
+ "choropleth": [
1466
+ {
1467
+ "colorbar": {
1468
+ "outlinewidth": 0,
1469
+ "ticks": ""
1470
+ },
1471
+ "type": "choropleth"
1472
+ }
1473
+ ],
1474
+ "contour": [
1475
+ {
1476
+ "colorbar": {
1477
+ "outlinewidth": 0,
1478
+ "ticks": ""
1479
+ },
1480
+ "colorscale": [
1481
+ [
1482
+ 0,
1483
+ "#0d0887"
1484
+ ],
1485
+ [
1486
+ 0.1111111111111111,
1487
+ "#46039f"
1488
+ ],
1489
+ [
1490
+ 0.2222222222222222,
1491
+ "#7201a8"
1492
+ ],
1493
+ [
1494
+ 0.3333333333333333,
1495
+ "#9c179e"
1496
+ ],
1497
+ [
1498
+ 0.4444444444444444,
1499
+ "#bd3786"
1500
+ ],
1501
+ [
1502
+ 0.5555555555555556,
1503
+ "#d8576b"
1504
+ ],
1505
+ [
1506
+ 0.6666666666666666,
1507
+ "#ed7953"
1508
+ ],
1509
+ [
1510
+ 0.7777777777777778,
1511
+ "#fb9f3a"
1512
+ ],
1513
+ [
1514
+ 0.8888888888888888,
1515
+ "#fdca26"
1516
+ ],
1517
+ [
1518
+ 1,
1519
+ "#f0f921"
1520
+ ]
1521
+ ],
1522
+ "type": "contour"
1523
+ }
1524
+ ],
1525
+ "contourcarpet": [
1526
+ {
1527
+ "colorbar": {
1528
+ "outlinewidth": 0,
1529
+ "ticks": ""
1530
+ },
1531
+ "type": "contourcarpet"
1532
+ }
1533
+ ],
1534
+ "heatmap": [
1535
+ {
1536
+ "colorbar": {
1537
+ "outlinewidth": 0,
1538
+ "ticks": ""
1539
+ },
1540
+ "colorscale": [
1541
+ [
1542
+ 0,
1543
+ "#0d0887"
1544
+ ],
1545
+ [
1546
+ 0.1111111111111111,
1547
+ "#46039f"
1548
+ ],
1549
+ [
1550
+ 0.2222222222222222,
1551
+ "#7201a8"
1552
+ ],
1553
+ [
1554
+ 0.3333333333333333,
1555
+ "#9c179e"
1556
+ ],
1557
+ [
1558
+ 0.4444444444444444,
1559
+ "#bd3786"
1560
+ ],
1561
+ [
1562
+ 0.5555555555555556,
1563
+ "#d8576b"
1564
+ ],
1565
+ [
1566
+ 0.6666666666666666,
1567
+ "#ed7953"
1568
+ ],
1569
+ [
1570
+ 0.7777777777777778,
1571
+ "#fb9f3a"
1572
+ ],
1573
+ [
1574
+ 0.8888888888888888,
1575
+ "#fdca26"
1576
+ ],
1577
+ [
1578
+ 1,
1579
+ "#f0f921"
1580
+ ]
1581
+ ],
1582
+ "type": "heatmap"
1583
+ }
1584
+ ],
1585
+ "heatmapgl": [
1586
+ {
1587
+ "colorbar": {
1588
+ "outlinewidth": 0,
1589
+ "ticks": ""
1590
+ },
1591
+ "colorscale": [
1592
+ [
1593
+ 0,
1594
+ "#0d0887"
1595
+ ],
1596
+ [
1597
+ 0.1111111111111111,
1598
+ "#46039f"
1599
+ ],
1600
+ [
1601
+ 0.2222222222222222,
1602
+ "#7201a8"
1603
+ ],
1604
+ [
1605
+ 0.3333333333333333,
1606
+ "#9c179e"
1607
+ ],
1608
+ [
1609
+ 0.4444444444444444,
1610
+ "#bd3786"
1611
+ ],
1612
+ [
1613
+ 0.5555555555555556,
1614
+ "#d8576b"
1615
+ ],
1616
+ [
1617
+ 0.6666666666666666,
1618
+ "#ed7953"
1619
+ ],
1620
+ [
1621
+ 0.7777777777777778,
1622
+ "#fb9f3a"
1623
+ ],
1624
+ [
1625
+ 0.8888888888888888,
1626
+ "#fdca26"
1627
+ ],
1628
+ [
1629
+ 1,
1630
+ "#f0f921"
1631
+ ]
1632
+ ],
1633
+ "type": "heatmapgl"
1634
+ }
1635
+ ],
1636
+ "histogram": [
1637
+ {
1638
+ "marker": {
1639
+ "pattern": {
1640
+ "fillmode": "overlay",
1641
+ "size": 10,
1642
+ "solidity": 0.2
1643
+ }
1644
+ },
1645
+ "type": "histogram"
1646
+ }
1647
+ ],
1648
+ "histogram2d": [
1649
+ {
1650
+ "colorbar": {
1651
+ "outlinewidth": 0,
1652
+ "ticks": ""
1653
+ },
1654
+ "colorscale": [
1655
+ [
1656
+ 0,
1657
+ "#0d0887"
1658
+ ],
1659
+ [
1660
+ 0.1111111111111111,
1661
+ "#46039f"
1662
+ ],
1663
+ [
1664
+ 0.2222222222222222,
1665
+ "#7201a8"
1666
+ ],
1667
+ [
1668
+ 0.3333333333333333,
1669
+ "#9c179e"
1670
+ ],
1671
+ [
1672
+ 0.4444444444444444,
1673
+ "#bd3786"
1674
+ ],
1675
+ [
1676
+ 0.5555555555555556,
1677
+ "#d8576b"
1678
+ ],
1679
+ [
1680
+ 0.6666666666666666,
1681
+ "#ed7953"
1682
+ ],
1683
+ [
1684
+ 0.7777777777777778,
1685
+ "#fb9f3a"
1686
+ ],
1687
+ [
1688
+ 0.8888888888888888,
1689
+ "#fdca26"
1690
+ ],
1691
+ [
1692
+ 1,
1693
+ "#f0f921"
1694
+ ]
1695
+ ],
1696
+ "type": "histogram2d"
1697
+ }
1698
+ ],
1699
+ "histogram2dcontour": [
1700
+ {
1701
+ "colorbar": {
1702
+ "outlinewidth": 0,
1703
+ "ticks": ""
1704
+ },
1705
+ "colorscale": [
1706
+ [
1707
+ 0,
1708
+ "#0d0887"
1709
+ ],
1710
+ [
1711
+ 0.1111111111111111,
1712
+ "#46039f"
1713
+ ],
1714
+ [
1715
+ 0.2222222222222222,
1716
+ "#7201a8"
1717
+ ],
1718
+ [
1719
+ 0.3333333333333333,
1720
+ "#9c179e"
1721
+ ],
1722
+ [
1723
+ 0.4444444444444444,
1724
+ "#bd3786"
1725
+ ],
1726
+ [
1727
+ 0.5555555555555556,
1728
+ "#d8576b"
1729
+ ],
1730
+ [
1731
+ 0.6666666666666666,
1732
+ "#ed7953"
1733
+ ],
1734
+ [
1735
+ 0.7777777777777778,
1736
+ "#fb9f3a"
1737
+ ],
1738
+ [
1739
+ 0.8888888888888888,
1740
+ "#fdca26"
1741
+ ],
1742
+ [
1743
+ 1,
1744
+ "#f0f921"
1745
+ ]
1746
+ ],
1747
+ "type": "histogram2dcontour"
1748
+ }
1749
+ ],
1750
+ "mesh3d": [
1751
+ {
1752
+ "colorbar": {
1753
+ "outlinewidth": 0,
1754
+ "ticks": ""
1755
+ },
1756
+ "type": "mesh3d"
1757
+ }
1758
+ ],
1759
+ "parcoords": [
1760
+ {
1761
+ "line": {
1762
+ "colorbar": {
1763
+ "outlinewidth": 0,
1764
+ "ticks": ""
1765
+ }
1766
+ },
1767
+ "type": "parcoords"
1768
+ }
1769
+ ],
1770
+ "pie": [
1771
+ {
1772
+ "automargin": true,
1773
+ "type": "pie"
1774
+ }
1775
+ ],
1776
+ "scatter": [
1777
+ {
1778
+ "fillpattern": {
1779
+ "fillmode": "overlay",
1780
+ "size": 10,
1781
+ "solidity": 0.2
1782
+ },
1783
+ "type": "scatter"
1784
+ }
1785
+ ],
1786
+ "scatter3d": [
1787
+ {
1788
+ "line": {
1789
+ "colorbar": {
1790
+ "outlinewidth": 0,
1791
+ "ticks": ""
1792
+ }
1793
+ },
1794
+ "marker": {
1795
+ "colorbar": {
1796
+ "outlinewidth": 0,
1797
+ "ticks": ""
1798
+ }
1799
+ },
1800
+ "type": "scatter3d"
1801
+ }
1802
+ ],
1803
+ "scattercarpet": [
1804
+ {
1805
+ "marker": {
1806
+ "colorbar": {
1807
+ "outlinewidth": 0,
1808
+ "ticks": ""
1809
+ }
1810
+ },
1811
+ "type": "scattercarpet"
1812
+ }
1813
+ ],
1814
+ "scattergeo": [
1815
+ {
1816
+ "marker": {
1817
+ "colorbar": {
1818
+ "outlinewidth": 0,
1819
+ "ticks": ""
1820
+ }
1821
+ },
1822
+ "type": "scattergeo"
1823
+ }
1824
+ ],
1825
+ "scattergl": [
1826
+ {
1827
+ "marker": {
1828
+ "colorbar": {
1829
+ "outlinewidth": 0,
1830
+ "ticks": ""
1831
+ }
1832
+ },
1833
+ "type": "scattergl"
1834
+ }
1835
+ ],
1836
+ "scattermapbox": [
1837
+ {
1838
+ "marker": {
1839
+ "colorbar": {
1840
+ "outlinewidth": 0,
1841
+ "ticks": ""
1842
+ }
1843
+ },
1844
+ "type": "scattermapbox"
1845
+ }
1846
+ ],
1847
+ "scatterpolar": [
1848
+ {
1849
+ "marker": {
1850
+ "colorbar": {
1851
+ "outlinewidth": 0,
1852
+ "ticks": ""
1853
+ }
1854
+ },
1855
+ "type": "scatterpolar"
1856
+ }
1857
+ ],
1858
+ "scatterpolargl": [
1859
+ {
1860
+ "marker": {
1861
+ "colorbar": {
1862
+ "outlinewidth": 0,
1863
+ "ticks": ""
1864
+ }
1865
+ },
1866
+ "type": "scatterpolargl"
1867
+ }
1868
+ ],
1869
+ "scatterternary": [
1870
+ {
1871
+ "marker": {
1872
+ "colorbar": {
1873
+ "outlinewidth": 0,
1874
+ "ticks": ""
1875
+ }
1876
+ },
1877
+ "type": "scatterternary"
1878
+ }
1879
+ ],
1880
+ "surface": [
1881
+ {
1882
+ "colorbar": {
1883
+ "outlinewidth": 0,
1884
+ "ticks": ""
1885
+ },
1886
+ "colorscale": [
1887
+ [
1888
+ 0,
1889
+ "#0d0887"
1890
+ ],
1891
+ [
1892
+ 0.1111111111111111,
1893
+ "#46039f"
1894
+ ],
1895
+ [
1896
+ 0.2222222222222222,
1897
+ "#7201a8"
1898
+ ],
1899
+ [
1900
+ 0.3333333333333333,
1901
+ "#9c179e"
1902
+ ],
1903
+ [
1904
+ 0.4444444444444444,
1905
+ "#bd3786"
1906
+ ],
1907
+ [
1908
+ 0.5555555555555556,
1909
+ "#d8576b"
1910
+ ],
1911
+ [
1912
+ 0.6666666666666666,
1913
+ "#ed7953"
1914
+ ],
1915
+ [
1916
+ 0.7777777777777778,
1917
+ "#fb9f3a"
1918
+ ],
1919
+ [
1920
+ 0.8888888888888888,
1921
+ "#fdca26"
1922
+ ],
1923
+ [
1924
+ 1,
1925
+ "#f0f921"
1926
+ ]
1927
+ ],
1928
+ "type": "surface"
1929
+ }
1930
+ ],
1931
+ "table": [
1932
+ {
1933
+ "cells": {
1934
+ "fill": {
1935
+ "color": "#EBF0F8"
1936
+ },
1937
+ "line": {
1938
+ "color": "white"
1939
+ }
1940
+ },
1941
+ "header": {
1942
+ "fill": {
1943
+ "color": "#C8D4E3"
1944
+ },
1945
+ "line": {
1946
+ "color": "white"
1947
+ }
1948
+ },
1949
+ "type": "table"
1950
+ }
1951
+ ]
1952
+ },
1953
+ "layout": {
1954
+ "annotationdefaults": {
1955
+ "arrowcolor": "#2a3f5f",
1956
+ "arrowhead": 0,
1957
+ "arrowwidth": 1
1958
+ },
1959
+ "autotypenumbers": "strict",
1960
+ "coloraxis": {
1961
+ "colorbar": {
1962
+ "outlinewidth": 0,
1963
+ "ticks": ""
1964
+ }
1965
+ },
1966
+ "colorscale": {
1967
+ "diverging": [
1968
+ [
1969
+ 0,
1970
+ "#8e0152"
1971
+ ],
1972
+ [
1973
+ 0.1,
1974
+ "#c51b7d"
1975
+ ],
1976
+ [
1977
+ 0.2,
1978
+ "#de77ae"
1979
+ ],
1980
+ [
1981
+ 0.3,
1982
+ "#f1b6da"
1983
+ ],
1984
+ [
1985
+ 0.4,
1986
+ "#fde0ef"
1987
+ ],
1988
+ [
1989
+ 0.5,
1990
+ "#f7f7f7"
1991
+ ],
1992
+ [
1993
+ 0.6,
1994
+ "#e6f5d0"
1995
+ ],
1996
+ [
1997
+ 0.7,
1998
+ "#b8e186"
1999
+ ],
2000
+ [
2001
+ 0.8,
2002
+ "#7fbc41"
2003
+ ],
2004
+ [
2005
+ 0.9,
2006
+ "#4d9221"
2007
+ ],
2008
+ [
2009
+ 1,
2010
+ "#276419"
2011
+ ]
2012
+ ],
2013
+ "sequential": [
2014
+ [
2015
+ 0,
2016
+ "#0d0887"
2017
+ ],
2018
+ [
2019
+ 0.1111111111111111,
2020
+ "#46039f"
2021
+ ],
2022
+ [
2023
+ 0.2222222222222222,
2024
+ "#7201a8"
2025
+ ],
2026
+ [
2027
+ 0.3333333333333333,
2028
+ "#9c179e"
2029
+ ],
2030
+ [
2031
+ 0.4444444444444444,
2032
+ "#bd3786"
2033
+ ],
2034
+ [
2035
+ 0.5555555555555556,
2036
+ "#d8576b"
2037
+ ],
2038
+ [
2039
+ 0.6666666666666666,
2040
+ "#ed7953"
2041
+ ],
2042
+ [
2043
+ 0.7777777777777778,
2044
+ "#fb9f3a"
2045
+ ],
2046
+ [
2047
+ 0.8888888888888888,
2048
+ "#fdca26"
2049
+ ],
2050
+ [
2051
+ 1,
2052
+ "#f0f921"
2053
+ ]
2054
+ ],
2055
+ "sequentialminus": [
2056
+ [
2057
+ 0,
2058
+ "#0d0887"
2059
+ ],
2060
+ [
2061
+ 0.1111111111111111,
2062
+ "#46039f"
2063
+ ],
2064
+ [
2065
+ 0.2222222222222222,
2066
+ "#7201a8"
2067
+ ],
2068
+ [
2069
+ 0.3333333333333333,
2070
+ "#9c179e"
2071
+ ],
2072
+ [
2073
+ 0.4444444444444444,
2074
+ "#bd3786"
2075
+ ],
2076
+ [
2077
+ 0.5555555555555556,
2078
+ "#d8576b"
2079
+ ],
2080
+ [
2081
+ 0.6666666666666666,
2082
+ "#ed7953"
2083
+ ],
2084
+ [
2085
+ 0.7777777777777778,
2086
+ "#fb9f3a"
2087
+ ],
2088
+ [
2089
+ 0.8888888888888888,
2090
+ "#fdca26"
2091
+ ],
2092
+ [
2093
+ 1,
2094
+ "#f0f921"
2095
+ ]
2096
+ ]
2097
+ },
2098
+ "colorway": [
2099
+ "#636efa",
2100
+ "#EF553B",
2101
+ "#00cc96",
2102
+ "#ab63fa",
2103
+ "#FFA15A",
2104
+ "#19d3f3",
2105
+ "#FF6692",
2106
+ "#B6E880",
2107
+ "#FF97FF",
2108
+ "#FECB52"
2109
+ ],
2110
+ "font": {
2111
+ "color": "#2a3f5f"
2112
+ },
2113
+ "geo": {
2114
+ "bgcolor": "white",
2115
+ "lakecolor": "white",
2116
+ "landcolor": "#E5ECF6",
2117
+ "showlakes": true,
2118
+ "showland": true,
2119
+ "subunitcolor": "white"
2120
+ },
2121
+ "hoverlabel": {
2122
+ "align": "left"
2123
+ },
2124
+ "hovermode": "closest",
2125
+ "mapbox": {
2126
+ "style": "light"
2127
+ },
2128
+ "paper_bgcolor": "white",
2129
+ "plot_bgcolor": "#E5ECF6",
2130
+ "polar": {
2131
+ "angularaxis": {
2132
+ "gridcolor": "white",
2133
+ "linecolor": "white",
2134
+ "ticks": ""
2135
+ },
2136
+ "bgcolor": "#E5ECF6",
2137
+ "radialaxis": {
2138
+ "gridcolor": "white",
2139
+ "linecolor": "white",
2140
+ "ticks": ""
2141
+ }
2142
+ },
2143
+ "scene": {
2144
+ "xaxis": {
2145
+ "backgroundcolor": "#E5ECF6",
2146
+ "gridcolor": "white",
2147
+ "gridwidth": 2,
2148
+ "linecolor": "white",
2149
+ "showbackground": true,
2150
+ "ticks": "",
2151
+ "zerolinecolor": "white"
2152
+ },
2153
+ "yaxis": {
2154
+ "backgroundcolor": "#E5ECF6",
2155
+ "gridcolor": "white",
2156
+ "gridwidth": 2,
2157
+ "linecolor": "white",
2158
+ "showbackground": true,
2159
+ "ticks": "",
2160
+ "zerolinecolor": "white"
2161
+ },
2162
+ "zaxis": {
2163
+ "backgroundcolor": "#E5ECF6",
2164
+ "gridcolor": "white",
2165
+ "gridwidth": 2,
2166
+ "linecolor": "white",
2167
+ "showbackground": true,
2168
+ "ticks": "",
2169
+ "zerolinecolor": "white"
2170
+ }
2171
+ },
2172
+ "shapedefaults": {
2173
+ "line": {
2174
+ "color": "#2a3f5f"
2175
+ }
2176
+ },
2177
+ "ternary": {
2178
+ "aaxis": {
2179
+ "gridcolor": "white",
2180
+ "linecolor": "white",
2181
+ "ticks": ""
2182
+ },
2183
+ "baxis": {
2184
+ "gridcolor": "white",
2185
+ "linecolor": "white",
2186
+ "ticks": ""
2187
+ },
2188
+ "bgcolor": "#E5ECF6",
2189
+ "caxis": {
2190
+ "gridcolor": "white",
2191
+ "linecolor": "white",
2192
+ "ticks": ""
2193
+ }
2194
+ },
2195
+ "title": {
2196
+ "x": 0.05
2197
+ },
2198
+ "xaxis": {
2199
+ "automargin": true,
2200
+ "gridcolor": "white",
2201
+ "linecolor": "white",
2202
+ "ticks": "",
2203
+ "title": {
2204
+ "standoff": 15
2205
+ },
2206
+ "zerolinecolor": "white",
2207
+ "zerolinewidth": 2
2208
+ },
2209
+ "yaxis": {
2210
+ "automargin": true,
2211
+ "gridcolor": "white",
2212
+ "linecolor": "white",
2213
+ "ticks": "",
2214
+ "title": {
2215
+ "standoff": 15
2216
+ },
2217
+ "zerolinecolor": "white",
2218
+ "zerolinewidth": 2
2219
+ }
2220
+ }
2221
+ }
2222
+ }
2223
+ }
2224
+ },
2225
+ "metadata": {},
2226
+ "output_type": "display_data"
2227
+ }
2228
+ ],
2229
+ "source": [
2230
+ "fig = px.scatter_3d(x=0, y=1, z=2, data_frame=df_vectors.tail(100), hover_data={\"song_names\": True}, color=\"is_text\", opacity=0.8)\n",
2231
+ "fig.show()\n"
2232
+ ]
2233
+ }
2234
+ ],
2235
+ "metadata": {
2236
+ "kernelspec": {
2237
+ "display_name": "playlist-curator",
2238
+ "language": "python",
2239
+ "name": "python3"
2240
+ },
2241
+ "language_info": {
2242
+ "codemirror_mode": {
2243
+ "name": "ipython",
2244
+ "version": 3
2245
+ },
2246
+ "file_extension": ".py",
2247
+ "mimetype": "text/x-python",
2248
+ "name": "python",
2249
+ "nbconvert_exporter": "python",
2250
+ "pygments_lexer": "ipython3",
2251
+ "version": "3.10.13"
2252
+ }
2253
+ },
2254
+ "nbformat": 4,
2255
+ "nbformat_minor": 2
2256
+ }
orchestrate_audio_data.py CHANGED
@@ -3,6 +3,6 @@ from src.data.get_yt_links import collect_youtube_links
3
  from src.data.pytuber import start_download_process
4
 
5
  if __name__ == "__main__":
6
- list_personal_saved_tracks()
7
- collect_youtube_links()
8
  start_download_process()
 
3
  from src.data.pytuber import start_download_process
4
 
5
  if __name__ == "__main__":
6
+ # list_personal_saved_tracks()
7
+ # collect_youtube_links()
8
  start_download_process()
requirements.txt CHANGED
@@ -86,4 +86,5 @@ validators==0.22.0
86
  wandb==0.16.0
87
  webdataset==0.2.77
88
  wget==3.2
89
- youtube-search-python==1.6.6
 
 
86
  wandb==0.16.0
87
  webdataset==0.2.77
88
  wget==3.2
89
+ youtube-search-python==1.6.6
90
+ python-dotenv
src/data/pytuber.py CHANGED
@@ -20,16 +20,25 @@ def download_mp3(link, download_path, track_full_name):
20
 
21
  new_file = track_full_name + '.wav'
22
  os.rename(download_path.joinpath(mp3.default_filename), data_dir.joinpath(new_file))
23
- except AgeRestrictedError:
24
- pass
25
 
 
 
 
26
 
27
  def start_download_process():
28
  input_data = read_youtube_data()
 
29
  done_pieces = os.listdir(ProjectPaths.DATA_DIR.joinpath("audio"))
30
  for i in tqdm(input_data):
31
  link = i["link"]
32
  full_name = f'{i["artist_name"]} - {i["track_name"]}'.replace("/", "_")
33
  if full_name + ".wav" in done_pieces:
34
  continue
35
- download_mp3(link, full_name)
 
 
 
 
 
 
 
20
 
21
  new_file = track_full_name + '.wav'
22
  os.rename(download_path.joinpath(mp3.default_filename), data_dir.joinpath(new_file))
23
+ return data_dir.joinpath(new_file)
 
24
 
25
+ except AgeRestrictedError:
26
+ return ""
27
+
28
 
29
  def start_download_process():
30
  input_data = read_youtube_data()
31
+ reformatted_input_data = []
32
  done_pieces = os.listdir(ProjectPaths.DATA_DIR.joinpath("audio"))
33
  for i in tqdm(input_data):
34
  link = i["link"]
35
  full_name = f'{i["artist_name"]} - {i["track_name"]}'.replace("/", "_")
36
  if full_name + ".wav" in done_pieces:
37
  continue
38
+ path = download_mp3(link, ProjectPaths.DATA_DIR.joinpath("audio") ,full_name)
39
+ new_data = i.copy()
40
+ new_data.update({"file_path": str(path)})
41
+ reformatted_input_data.append(new_data)
42
+
43
+ with open(ProjectPaths.DATA_DIR.joinpath("json", "final_track_data.json"), "w") as wr:
44
+ json.dump(reformatted_input_data, wr, indent=4)
src/data/spotify.py CHANGED
@@ -10,14 +10,17 @@ def list_personal_saved_tracks():
10
  sp = spotipy.Spotify(auth_manager=auth)
11
 
12
  tracks = []
 
13
  offset_count = 0
14
  for _ in range(50):
15
  results = sp.current_user_saved_tracks(limit=50, offset=offset_count)
16
  for idx, item in enumerate(results['items']):
17
  track = item['track']
18
  data = {"artist": track['artists'][0]['name'], "track": track['name']}
19
- tracks.append(data)
20
- print(idx, track['artists'][0]['name'], " - ", track['name'])
 
 
21
  offset_count += 50
22
 
23
  with open(ProjectPaths.DATA_DIR.joinpath("json", "saved_tracks.json"), "w", encoding="UTF-8") as wr:
 
10
  sp = spotipy.Spotify(auth_manager=auth)
11
 
12
  tracks = []
13
+ downloaded_tracks = []
14
  offset_count = 0
15
  for _ in range(50):
16
  results = sp.current_user_saved_tracks(limit=50, offset=offset_count)
17
  for idx, item in enumerate(results['items']):
18
  track = item['track']
19
  data = {"artist": track['artists'][0]['name'], "track": track['name']}
20
+ if track not in downloaded_tracks:
21
+ tracks.append(data)
22
+ downloaded_tracks.append(track)
23
+ print(idx, track['artists'][0]['name'], " - ", track['name'])
24
  offset_count += 50
25
 
26
  with open(ProjectPaths.DATA_DIR.joinpath("json", "saved_tracks.json"), "w", encoding="UTF-8") as wr:
src/laion_clap/inference.py CHANGED
@@ -38,4 +38,4 @@ class AudioEncoder(laion_clap.CLAP_Module):
38
  def extract_text_representation(self, text):
39
  text_data = [text]
40
  text_embed = self.get_text_embedding(text_data)
41
- return text_embed
 
38
  def extract_text_representation(self, text):
39
  text_data = [text]
40
  text_embed = self.get_text_embedding(text_data)
41
+ return text_embed