Skip to content

Commit d3f9982

Browse files
committed
Added All Functions
1 parent b55a46a commit d3f9982

File tree

1 file changed

+139
-7
lines changed

1 file changed

+139
-7
lines changed

src/Tidal/TidalAPI.php

Lines changed: 139 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,16 +44,148 @@ public function logIn($username, $password) {
4444
}
4545

4646
public function search($field = "track", $query = NULL) {
47-
return json_decode($this->sendRequest("search/" . $field . "s", ["sessionId" => $this->sessionId, "countryCode" => $this->countryCode, "limit" => 999, "query" => $query]), true)["items"];
47+
return json_decode($this->sendRequest("search/" . $field, ["sessionId" => $this->sessionId, "countryCode" => $this->countryCode, "limit" => 999, "query" => $query]), true)["items"];
4848
}
4949

50+
public function getTrackUrl ($TrackId, $Quality = "HIGH") {
51+
return $this->sendRequest("tracks/" . $TrackId . "/streamUrl", ["sessionId" => $this->sessionId, "countryCode" => $this->countryCode, "soundQuality" => $Quality]);
52+
}
53+
54+
public function getVideoUrl ($VideoId, $Quality = "MEDIUM") {
55+
return $this->sendRequest("videos/" . $VideoId . "/urlpostpaywall", ["sessionId" => $this->sessionId, "countryCode" => $this->countryCode, "urlusagemode" => "STREAM", "assetpresentation" => "FULL", "videoquality" => $Quality]);
56+
}
57+
58+
public function getVideo ($VideoId) {
59+
return $this->sendRequest("videos/" . $VideoId, ["sessionId" => $this->sessionId, "countryCode" => $this->countryCode]);
60+
}
61+
62+
public function getTrack ($TrackId) {
63+
return $this->sendRequest("tracks/" . $TrackId, ["sessionId" => $this->sessionId, "countryCode" => $this->countryCode]);
64+
}
65+
66+
public function getTrackRadio ($TrackId, $Limit = 100) {
67+
return $this->sendRequest('tracks/' . $TrackId . '/radio', ["sessionId" => $this->sessionId, "countryCode" => $this->countryCode, "limit" => $Limit]);
68+
}
69+
70+
public function getGenres () {
71+
return $this->sendRequest('genres', ["sessionId" => $this->sessionId, "countryCode" => $this->countryCode]);
72+
}
73+
74+
public function getGenreItems ($GenreId, $ContentType) {
75+
return $this->sendRequest('genres/' . $GenreId . '/' . $ContentType, ["sessionId" => $this->sessionId, "countryCode" => $this->countryCode]);
76+
}
77+
78+
public function getMoods () {
79+
return $this->sendRequest('moods', ["sessionId" => $this->sessionId, "countryCode" => $this->countryCode]);
80+
}
81+
82+
public function getMoodPlaylist ($MoodId) {
83+
return $this->sendRequest('moods/' . $MoodId . '/playlists', ["sessionId" => $this->sessionId, "countryCode" => $this->countryCode]);
84+
}
85+
86+
public function getFeatured () {
87+
return json_decode($this->sendRequest('promotions', ["sessionId" => $this->sessionId, "countryCode" => $this->countryCode]), true)["items"];
88+
}
89+
90+
public function getFeaturedItems ($Group, $ContentType) {
91+
return $this->sendRequest('featured/' . $Group . '/' . $ContentType, ["sessionId" => $this->sessionId, "countryCode" => $this->countryCode]);
92+
}
93+
94+
public function getUser ($UserId) {
95+
return $this->sendRequest('users/' . $UserId, ["sessionId" => $this->sessionId, "countryCode" => $this->countryCode]);
96+
}
97+
98+
public function getUserPlaylist ($UserId) {
99+
return $this->sendRequest('users/' . $UserId . '/playlists', ["sessionId" => $this->sessionId, "countryCode" => $this->countryCode]);
100+
}
101+
102+
public function getPlaylist ($PlaylistId) {
103+
return $this->sendRequest('playlists/' . $PlaylistId, ["sessionId" => $this->sessionId, "countryCode" => $this->countryCode]);
104+
}
105+
106+
public function getPlaylistTracks ($PlaylistId) {
107+
// need parse because getting tracks and videos
108+
return $this->sendRequest('playlists/' . $PlaylistId . '/tracks', ["sessionId" => $this->sessionId, "countryCode" => $this->countryCode]);
109+
}
110+
111+
public function getPlaylistVideos ($PlaylistId) {
112+
return $this->sendRequest('playlists/' . $PlaylistId . '/items', ["sessionId" => $this->sessionId, "countryCode" => $this->countryCode]);
113+
}
114+
115+
public function getPlaylistItems ($PlaylistId) {
116+
return $this->sendRequest('playlists/' . $PlaylistId . '/items', ["sessionId" => $this->sessionId, "countryCode" => $this->countryCode]);
117+
}
118+
119+
public function getAlbum ($AlbumId) {
120+
return $this->sendRequest('albums/' . $AlbumId, ["sessionId" => $this->sessionId, "countryCode" => $this->countryCode]);
121+
}
122+
123+
public function getAlbumTracks ($AlbumId) {
124+
return $this->sendRequest('albums/' . $AlbumId . '/tracks', ["sessionId" => $this->sessionId, "countryCode" => $this->countryCode]);
125+
}
126+
127+
public function getAlbumVideos ($AlbumId) {
128+
// need parse because getting tracks and videos
129+
return $this->sendRequest('albums/' . $AlbumId . '/items', ["sessionId" => $this->sessionId, "countryCode" => $this->countryCode]);
130+
}
131+
132+
public function getAlbumItems ($AlbumId) {
133+
return $this->sendRequest('albums/' . $AlbumId . '/items', ["sessionId" => $this->sessionId, "countryCode" => $this->countryCode]);
134+
}
135+
136+
public function getArtist ($ArtistId) {
137+
return $this->sendRequest('artists/' . $ArtistId, ["sessionId" => $this->sessionId, "countryCode" => $this->countryCode]);
138+
}
139+
140+
public function getArtistAlbums ($ArtistId) {
141+
return $this->sendRequest('artists/' . $ArtistId . '/albums', ["sessionId" => $this->sessionId, "countryCode" => $this->countryCode]);
142+
}
143+
144+
public function getArtistAlbums_Singles ($ArtistId) {
145+
return $this->sendRequest('artists/' . $ArtistId . '/albums', ["sessionId" => $this->sessionId, "countryCode" => $this->countryCode, "filter" => "EPSANDSINGLES"]);
146+
}
147+
148+
public function getArtistAlbums_Other ($ArtistId) {
149+
return $this->sendRequest('artists/' . $ArtistId . '/albums', ["sessionId" => $this->sessionId, "countryCode" => $this->countryCode, "filter" => "COMPILATIONS"]);
150+
}
151+
152+
public function getArtistTopTracks ($ArtistId) {
153+
return $this->sendRequest('artists/' . $ArtistId . '/toptracks', ["sessionId" => $this->sessionId, "countryCode" => $this->countryCode]);
154+
}
155+
156+
public function getArtistVideos ($ArtistId) {
157+
return $this->sendRequest('artists/' . $ArtistId . '/videos', ["sessionId" => $this->sessionId, "countryCode" => $this->countryCode]);
158+
}
159+
160+
public function getArtistBio ($ArtistId) {
161+
return $this->sendRequest('artists/' . $ArtistId . '/bio', ["sessionId" => $this->sessionId, "countryCode" => $this->countryCode]);
162+
}
163+
164+
public function getArtistSimilar ($ArtistId) {
165+
return $this->sendRequest('artists/' . $ArtistId . '/similar', ["sessionId" => $this->sessionId, "countryCode" => $this->countryCode]);
166+
}
167+
168+
public function getArtistRadio ($ArtistId) {
169+
return $this->sendRequest('artists/' . $ArtistId . '/radio', ["sessionId" => $this->sessionId, "countryCode" => $this->countryCode]);
170+
}
171+
172+
public function getAlbumPhoto ($AlbumPhotoId, $Size = 1080) {
173+
return "https://resources.tidal.com/images/" . $AlbumPhotoId . "/" . $Size . "x" . $Size . ".jpg";
174+
}
175+
176+
177+
50178
private function sendRequest($Method, $Params, $Headers = NULL) {
51-
$url = $this->urlCreate($Method);
52-
return $sendReq = $this->client->get($url,
53-
[
54-
'query' => $Params,
55-
'headers' => $Headers
56-
])->getBody();
179+
if (!isset($this->sessionId, $this->countryCode)) {
180+
echo "Please first log in, You Didnt Login\n";
181+
} else {
182+
$url = $this->urlCreate($Method);
183+
return $sendReq = $this->client->get($url,
184+
[
185+
'query' => $Params,
186+
'headers' => $Headers
187+
])->getBody();
188+
}
57189
}
58190

59191
private function urlCreate($method) {

0 commit comments

Comments
 (0)