@khang07/zing-mp3-api 1.1.0 → 1.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,132 @@
1
+ function createArtistRef(data) {
2
+ return {
3
+ alias: data.alias,
4
+ name: data.name,
5
+ thumbnail: {
6
+ w240: data.thumbnail,
7
+ w600: data.thumbnailM
8
+ },
9
+ ...(typeof data.totalFollow === 'number' ? {
10
+ followCount: data.totalFollow
11
+ } : {})
12
+ };
13
+ }
14
+ function createSearchArtist(data) {
15
+ return {
16
+ alias: data.alias,
17
+ name: data.name,
18
+ thumbnail: {
19
+ w240: data.thumbnail,
20
+ w600: data.thumbnailM
21
+ },
22
+ followCount: data.totalFollow
23
+ };
24
+ }
25
+ function createArtist(data) {
26
+ return {
27
+ alias: data.alias,
28
+ birthday: data.birthday,
29
+ realname: data.realname,
30
+ thumbnail: {
31
+ w240: data.thumbnail,
32
+ w600: data.thumbnailM
33
+ },
34
+ followCount: data.totalFollow,
35
+ name: data.name,
36
+ national: data.national,
37
+ biography: data.biography
38
+ };
39
+ }
40
+ function createAlbum(data) {
41
+ return {
42
+ id: data.encodeId,
43
+ name: data.title,
44
+ isOffical: data.isoffical,
45
+ releaseDate: data.releaseDate,
46
+ releasedAt: data.releasedAt,
47
+ artists: data.artists.map(createArtistRef),
48
+ thumbnail: {
49
+ w165: data.thumbnail
50
+ }
51
+ };
52
+ }
53
+ function createMedia(data) {
54
+ return {
55
+ id: data.encodeId,
56
+ name: data.title,
57
+ alias: data.alias,
58
+ isOffical: data.isOffical,
59
+ username: data.username,
60
+ artists: data.artists.map(createArtistRef),
61
+ isWorldWide: data.isWorldWide,
62
+ thumbnail: {
63
+ w94: data.thumbnail,
64
+ w240: data.thumbnailM
65
+ },
66
+ duration: data.duration,
67
+ isPrivate: data.isPrivate,
68
+ releaseDate: data.releaseDate,
69
+ album: createAlbum(data.album),
70
+ hasLyric: !!data.hasLyric
71
+ };
72
+ }
73
+ function createSearchMedia(data) {
74
+ return {
75
+ id: data.encodeId,
76
+ name: data.title,
77
+ alias: data.alias,
78
+ isOffical: data.isOffical,
79
+ username: data.username,
80
+ artists: data.artists.map(createArtistRef),
81
+ isWorldWide: data.isWorldWide,
82
+ thumbnail: {
83
+ w94: data.thumbnail,
84
+ w240: data.thumbnailM
85
+ },
86
+ duration: data.duration,
87
+ hasLyric: !!data.hasLyric
88
+ };
89
+ }
90
+ function createPlayList(data) {
91
+ return {
92
+ id: data.encodeId,
93
+ name: data.title,
94
+ thumbnail: {
95
+ w165: data.thumbnail,
96
+ w320: data.thumbnailM
97
+ },
98
+ isOffical: data.isoffical,
99
+ releaseDate: data.releaseDate,
100
+ releasedAt: data.releasedAt,
101
+ artists: data.artists.map(createArtistRef),
102
+ isPrivate: data.isPrivate,
103
+ isSingle: data.isSingle,
104
+ description: data.description,
105
+ alias: data.aliasTitle,
106
+ updatedAt: data.contentLastUpdate,
107
+ likeCount: data.like,
108
+ listenCount: data.listen,
109
+ mediaCount: data.song.total,
110
+ duration: data.song.totalDuration,
111
+ media: data.song.items.map(createMedia)
112
+ };
113
+ }
114
+ function createSearchPlayList(data) {
115
+ return {
116
+ id: data.encodeId,
117
+ name: data.title,
118
+ thumbnail: {
119
+ w165: data.thumbnail,
120
+ w320: data.thumbnailM
121
+ },
122
+ isOffical: data.isoffical,
123
+ releaseDate: data.releaseDate,
124
+ releasedAt: data.releasedAt,
125
+ artists: data.artists.map(createArtistRef),
126
+ isPrivate: data.isPrivate,
127
+ isSingle: data.isSingle,
128
+ alias: data.aliasTitle
129
+ };
130
+ }
131
+ export { createArtist, createMedia, createPlayList, createSearchMedia, createSearchPlayList, createSearchArtist };
132
+ //# sourceMappingURL=refined.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refined.js","sourceRoot":"source/","sources":["utils/refined.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
- import { Readable } from 'node:stream';
2
- import type { ResponseSearch } from './types/fetch/response.js';
3
- import type { ClientOptions, RequiredClientOptions } from './types/index.js';
4
- export type { ResponseSearch, ClientOptions };
5
- declare class ZingClient {
1
+ import { URL } from 'node:url';
2
+ import { Cookies } from './utils/cookies.js';
3
+ import type { Readable } from 'node:stream';
4
+ import type { ClientOptions } from './types/index.js';
5
+ import type { Artist, Media, SearchMedia, PlayList, SearchPlayList, SearchArtist } from './types/response.js';
6
+ export type { Cookies, ClientOptions, PlayList, Artist, Media, SearchMedia, SearchPlayList, SearchArtist };
7
+ declare class Client {
6
8
  static readonly BASE_URL: string;
7
9
  static readonly VERSION_URL_V1: string;
8
10
  static readonly VERSION_URL_V2: string;
@@ -10,16 +12,33 @@ declare class ZingClient {
10
12
  static readonly SECRET_KEY_V2: string;
11
13
  static readonly API_KEY_V1: string;
12
14
  static readonly API_KEY_V2: string;
13
- readonly ctime: string;
14
- private readonly jar;
15
+ static readonly API_VIDEO_PATH: string;
16
+ static readonly API_MUSIC_PATH: string;
17
+ static readonly EXTRA_API_MUSIC_PATH: string;
18
+ static readonly API_SEARCH_PATH: string;
19
+ static readonly API_PLAYLIST_PATH: string;
20
+ static readonly API_MEDIA_DETAILS_PATH: string;
21
+ static readonly API_ARTIST_PATH: string;
22
+ static getIDFromURL(url: string): string;
23
+ private readonly ctime;
15
24
  private readonly instance;
16
- maxRate: RequiredClientOptions['maxRate'];
25
+ private readonly maxLoad;
26
+ private readonly maxHighWaterMark;
27
+ private readonly userAgent;
28
+ private readonly jar;
17
29
  constructor(options?: ClientOptions);
18
- video(videoID: string): Promise<Readable>;
19
- videoSyncLike(videoID: string): Readable;
20
- music(musicID: string): Promise<Readable>;
21
- musicSyncLike(musicID: string): Readable;
22
- search(keyword: string): Promise<ResponseSearch[]>;
30
+ private ensureCookies;
31
+ video(videoID: string | URL): Promise<Readable>;
32
+ videoSync(videoID: string | URL): Readable;
33
+ music(musicID: string | URL): Promise<Readable>;
34
+ musicSync(musicID: string | URL): Readable;
35
+ playlist(playlistID: string | URL): Promise<PlayList>;
36
+ artist(aliasID: string | URL): Promise<Artist>;
37
+ mediaDetails(mediaID: string | URL): Promise<Media>;
38
+ searchMusic(query: string): Promise<SearchMedia[]>;
39
+ searchVideo(query: string): Promise<SearchMedia[]>;
40
+ searchList(query: string): Promise<SearchPlayList[]>;
41
+ searchArtist(query: string): Promise<SearchArtist[]>;
23
42
  }
24
- declare const client: ZingClient;
25
- export { client as default, ZingClient };
43
+ declare const client: Client;
44
+ export { client as default, Client };
@@ -1,7 +1,9 @@
1
+ import type { Cookies } from '../utils/cookies.js';
2
+ type SearchCategory = 'music' | 'video' | 'artist' | 'playlist';
1
3
  interface ClientOptions {
2
- maxRate?: [Download?: number, HighWaterMark?: number];
4
+ maxLoad?: number;
5
+ maxHighWaterMark?: number;
6
+ userAgent?: string;
7
+ jar?: Cookies;
3
8
  }
4
- interface RequiredClientOptions {
5
- maxRate: [Download: number, HighWaterMark: number];
6
- }
7
- export type { ClientOptions, RequiredClientOptions };
9
+ export type { ClientOptions, SearchCategory };
@@ -0,0 +1,89 @@
1
+ type RawThumbnail = {
2
+ thumbnail: string;
3
+ thumbnailM: string;
4
+ };
5
+ type RawMusicQuality = '128' | '320';
6
+ type RawVideoQuality = '360p' | '720p';
7
+ type RawMusicStreaming = Partial<Record<'128', string>>;
8
+ type RawVideoStreaming = Partial<Record<RawVideoQuality, string>>;
9
+ interface ResponseData<Data> {
10
+ err: number;
11
+ data: Data;
12
+ }
13
+ interface RawMusic extends Partial<Record<RawMusicQuality, string>> {
14
+ streaming?: {
15
+ default?: RawMusicStreaming;
16
+ };
17
+ }
18
+ interface RawVideo {
19
+ streaming?: {
20
+ hls?: RawVideoStreaming;
21
+ };
22
+ }
23
+ interface RawArtistBase extends RawThumbnail {
24
+ alias: string;
25
+ name: string;
26
+ }
27
+ interface RawSearchArtist extends RawArtistBase {
28
+ totalFollow: number;
29
+ }
30
+ interface RawArtist extends RawArtistBase {
31
+ birthday: string;
32
+ biography: string;
33
+ national: string;
34
+ realname: string;
35
+ totalFollow: number;
36
+ }
37
+ type RawArtistItem = RawArtistBase & {
38
+ totalFollow?: number;
39
+ };
40
+ interface RawAlbum {
41
+ encodeId: string;
42
+ title: string;
43
+ thumbnail: string;
44
+ isoffical: boolean;
45
+ releaseDate: string;
46
+ releasedAt: number;
47
+ artists: RawArtistItem[];
48
+ }
49
+ interface RawMedia extends RawThumbnail {
50
+ encodeId: string;
51
+ title: string;
52
+ alias: string;
53
+ username: string;
54
+ artists: RawArtistItem[];
55
+ duration: number;
56
+ releaseDate: number;
57
+ album: RawAlbum;
58
+ hasLyric?: boolean;
59
+ isOffical: boolean;
60
+ isPrivate: boolean;
61
+ isWorldWide: boolean;
62
+ }
63
+ type RawSearchMedia = Omit<RawMedia, 'album'>;
64
+ interface RawPlayListSong {
65
+ items: RawMedia[];
66
+ total: number;
67
+ totalDuration: number;
68
+ }
69
+ interface RawPlayList extends RawThumbnail {
70
+ encodeId: string;
71
+ title: string;
72
+ aliasTitle: string;
73
+ artists: RawArtistItem[];
74
+ contentLastUpdate: number;
75
+ description: string;
76
+ isoffical: boolean;
77
+ isPrivate: boolean;
78
+ isSingle: boolean;
79
+ like: number;
80
+ listen: number;
81
+ releaseDate: string;
82
+ releasedAt: number;
83
+ song: RawPlayListSong;
84
+ }
85
+ type RawSearchPlayList = Omit<RawPlayList, 'song' | 'listen' | 'like' | 'description' | 'contentLastUpdate'>;
86
+ interface RawSearch<Data> {
87
+ items: Data[];
88
+ }
89
+ export type { ResponseData, RawAlbum, RawArtist, RawArtistBase, RawArtistItem, RawMedia, RawSearch, RawMusic, RawMusicQuality, RawMusicStreaming, RawPlayList, RawPlayListSong, RawSearchMedia, RawThumbnail, RawVideo, RawVideoQuality, RawVideoStreaming, RawSearchPlayList, RawSearchArtist };
@@ -0,0 +1,70 @@
1
+ type CoverArtist = {
2
+ w240: string;
3
+ w600: string;
4
+ };
5
+ type CoverMedia = {
6
+ w94: string;
7
+ w240: string;
8
+ };
9
+ type CoverPlayList = {
10
+ w165: string;
11
+ w320: string;
12
+ };
13
+ interface Named {
14
+ id: string;
15
+ name: string;
16
+ }
17
+ interface ArtistRef {
18
+ alias: string;
19
+ followCount?: number;
20
+ name: string;
21
+ thumbnail: CoverArtist;
22
+ }
23
+ type SearchArtist = Required<ArtistRef>;
24
+ interface Artist extends ArtistRef {
25
+ biography: string;
26
+ birthday: string;
27
+ followCount: number;
28
+ national: string;
29
+ realname: string;
30
+ }
31
+ interface Album extends Named {
32
+ artists: ArtistRef[];
33
+ isOffical: boolean;
34
+ releaseDate: string;
35
+ releasedAt: number;
36
+ thumbnail: Pick<CoverPlayList, 'w165'>;
37
+ }
38
+ interface Media extends Named {
39
+ album: Album;
40
+ alias: string;
41
+ artists: ArtistRef[];
42
+ duration: number;
43
+ hasLyric: boolean;
44
+ isOffical: boolean;
45
+ isPrivate: boolean;
46
+ isWorldWide: boolean;
47
+ releaseDate: number;
48
+ thumbnail: CoverMedia;
49
+ username: string;
50
+ }
51
+ type SearchMedia = Omit<Media, 'album' | 'isPrivate' | 'releaseDate'>;
52
+ interface PlayList extends Named {
53
+ alias: string;
54
+ artists: ArtistRef[];
55
+ description: string;
56
+ duration: number;
57
+ isOffical: boolean;
58
+ isPrivate: boolean;
59
+ isSingle: boolean;
60
+ likeCount: number;
61
+ listenCount: number;
62
+ media: Media[];
63
+ mediaCount: number;
64
+ releaseDate: string;
65
+ releasedAt: number;
66
+ thumbnail: CoverPlayList;
67
+ updatedAt: number;
68
+ }
69
+ type SearchPlayList = Omit<PlayList, 'updatedAt' | 'mediaCount' | 'listenCount' | 'likeCount' | 'duration' | 'description' | 'media'>;
70
+ export type { Album, Artist, ArtistRef, CoverArtist, CoverMedia, CoverPlayList, Media, SearchMedia, PlayList, SearchPlayList, SearchArtist };
@@ -0,0 +1,9 @@
1
+ import type { RawArtist, RawMedia, RawPlayList, RawSearchMedia, RawSearchPlayList, RawSearchArtist } from '../types/raw.js';
2
+ import type { Artist, Media, PlayList, SearchMedia, SearchPlayList, SearchArtist } from '../types/response.js';
3
+ declare function createSearchArtist(data: RawSearchArtist): SearchArtist;
4
+ declare function createArtist(data: RawArtist): Artist;
5
+ declare function createMedia(data: RawMedia): Media;
6
+ declare function createSearchMedia(data: RawSearchMedia): SearchMedia;
7
+ declare function createPlayList(data: RawPlayList): PlayList;
8
+ declare function createSearchPlayList(data: RawSearchPlayList): SearchPlayList;
9
+ export { createArtist, createMedia, createPlayList, createSearchMedia, createSearchPlayList, createSearchArtist };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@khang07/zing-mp3-api",
3
- "version": "1.1.0",
3
+ "version": "1.3.4",
4
4
  "author": "GiaKhang <ngkhang9a5lqc11@gmail.com>",
5
5
  "repository": {
6
6
  "type": "git",
@@ -48,7 +48,6 @@
48
48
  "scripts": {
49
49
  "build:esm": "tsc -p tsconfig.json",
50
50
  "build:cjs": "rollup -c",
51
- "build": "rm -rf dist && bun run build:esm && bun run build:cjs && rm -fr dist/esm/types dist/cjs/types",
52
51
  "test": "mocha"
53
52
  },
54
53
  "devDependencies": {
@@ -1,22 +0,0 @@
1
- export interface ResponseSearch {
2
- id: string;
3
- name: string;
4
- alias: string;
5
- isOffical: boolean;
6
- username: string;
7
- artists: {
8
- id: string;
9
- name: string;
10
- alias: string;
11
- thumbnail: {
12
- w240: string;
13
- w360: string;
14
- };
15
- }[];
16
- thumbnail: {
17
- w94: string;
18
- w240: string;
19
- };
20
- duration: number;
21
- releaseDate: number;
22
- }
@@ -1,46 +0,0 @@
1
- export declare namespace Uri {
2
- interface Music {
3
- err: number;
4
- data: {
5
- 128?: string;
6
- streaming?: {
7
- default?: {
8
- 128?: string;
9
- };
10
- };
11
- };
12
- }
13
- interface Video {
14
- err: number;
15
- data: {
16
- streaming?: {
17
- hls?: {
18
- '360p'?: string;
19
- };
20
- };
21
- };
22
- }
23
- interface Search {
24
- err: number;
25
- data: {
26
- songs?: {
27
- encodeId: string;
28
- title: string;
29
- alias: string;
30
- isOffical: boolean;
31
- username: string;
32
- artists: {
33
- id: string;
34
- name: string;
35
- alias: string;
36
- thumbnail: string;
37
- thumbnailM: string;
38
- }[];
39
- thumbnailM: string;
40
- thumbnail: string;
41
- duration: number;
42
- releaseDate: number;
43
- }[];
44
- };
45
- }
46
- }