blob: 92e8e8d6cafcf7be92f55097ae40b9689e725960 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
(ns tau.api.playlists
(:require
[clojure.java.data :as j]
[ring.util.codec :refer [url-decode]]
[tau.api.items :as items])
(:import
org.schabi.newpipe.extractor.playlist.PlaylistInfo
org.schabi.newpipe.extractor.Page
org.schabi.newpipe.extractor.NewPipe))
(defn get-playlist
([url]
(let [service (NewPipe/getServiceByUrl (url-decode url))
info (PlaylistInfo/getInfo service (url-decode url))]
{:id (.getId info)
:name (.getName info)
:playlist-type (j/from-java (.getPlaylistType info))
:thumbnail-url (.getThumbnailUrl info)
:banner-url (.getBannerUrl info)
:uploader-name (.getUploaderName info)
:uploader-url (.getUploaderUrl info)
:uploader-avatar (.getUploaderAvatarUrl info)
:stream-count (.getStreamCount info)
:next-page (j/from-java (.getNextPage info))
:related-streams (items/get-items (.getRelatedItems info))}))
([url page-url]
(let [service (NewPipe/getServiceByUrl (url-decode url))
info (PlaylistInfo/getMoreItems service url (Page. (url-decode page-url)))]
{:next-page (j/from-java (.getNextPage info))
:related-streams (items/get-items (.getItems info))})))
|