Skip to content

Commit d3f874b

Browse files
committed
Add saved playlists specification
1 parent 2c0c33f commit d3f874b

File tree

4 files changed

+87
-1
lines changed

4 files changed

+87
-1
lines changed

README.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,12 @@ An array of Strings.
2828
Each string refers to the name of a playlist file (without the `playlist_` prefix)
2929
that was included in the export.
3030

31+
#### `"saved_playlists_present"`
32+
33+
A Boolean.
34+
35+
Indicates whether the `saved_playlists.json` file was included in the export.
36+
3137
#### `"watch_history_present"`
3238

3339
A Boolean.
@@ -39,6 +45,7 @@ Indicates whether the special playlist `watch_history` was included in the expor
3945
```javascript
4046
{
4147
"version": "X.Y.Z[-draft/-rc]",
48+
"saved_playlists_present": Boolean,
4249
"watch_history_present": Boolean,
4350
"subscriptions": SubscriptionObject[],
4451
"playlists": String[],
@@ -83,6 +90,23 @@ An array of [video objects](spec/video_object).
8390
```
8491

8592

93+
## Saved playlist file (`saved_playlists.json`)
94+
95+
This file contains the playlists from other services that the user bookmarked.
96+
97+
#### > `"playlists"`
98+
99+
An array of [saved playlist objects](spec/saved playlist_object).
100+
101+
### Overview
102+
103+
```javascript
104+
{
105+
"playlists": SavedPlaylist[],
106+
}
107+
```
108+
109+
86110
## Watch history file (`watch_history.json`)
87111

88112
The watch history is nothing more than a private paylist, without metadata

examples/main.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"version": "0.0.3-draft",
2+
"version": "0.0.4-draft",
33
"subscriptions": [
44
{
55
"type": "youtube",
@@ -9,6 +9,7 @@
99
"thumbnail": "https://yt3.ggpht.com/ytc/[snip]"
1010
}
1111
],
12+
"saved_playlists_present": true,
1213
"watch_history_present": true,
1314
"playlists": [
1415
"abc123"

examples/saved_playlists.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"playlists": [
3+
{
4+
"type": "youtube",
5+
"id": "PLYT4vq6pQVSvgqA8Qsm8TXjYJMTT2XyNV",
6+
"title": "World Of Walker (Full Album)",
7+
"author": "Alan Walker",
8+
"url": "https://www.youtube.com/playlist?list=PLYT4vq6pQVSvgqA8Qsm8TXjYJMTT2XyNV",
9+
"thumbnail": "https://yt3.ggpht.com/ytc/[snip]"
10+
}
11+
]
12+
}

spec/saved_playlist_object.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# SavedPlaylist object
2+
3+
#### > `"type"`
4+
5+
The type of the service this entry refers to.
6+
7+
This field is a short and meaningful identifier that prevents the parser from
8+
trying to guess the name of the service from the `url` present in this object.
9+
10+
#### > `"id"`
11+
12+
The ID of the playlist.
13+
14+
The format if this ID is service-dependant.
15+
16+
The only requirement being the uniqueness of the ID in the service.
17+
E.g: All youtube playlist IDs (starting with `PL`) are unique to eachother.
18+
19+
#### > `"title"`
20+
21+
The playlist's title.
22+
23+
#### > `"author"`
24+
25+
The name of the channel/user who created the playlist.
26+
27+
#### > `"url"`
28+
29+
The URL used to access the video.
30+
31+
This URL SHOULD NOT contain query parameters, unless required by the service
32+
(e.g youtube playlists).
33+
34+
#### > `"thumbnail"`
35+
36+
The URL to the plylist's thumbnail.
37+
38+
### Overview
39+
40+
```javascript
41+
{
42+
"type": String,
43+
"id": String,
44+
"title": String,
45+
"author": String,
46+
"url": String,
47+
"thumbnail": String
48+
}
49+
```

0 commit comments

Comments
 (0)