tubearchivist/tubearchivist/api/README.md

120 lines
2.2 KiB
Markdown
Raw Normal View History

# TubeArchivist API
Documentation of available API endpoints.
2022-01-11 10:05:04 +00:00
**Note: This is very early alpha and will change!**
## Authentication
2022-01-11 10:05:04 +00:00
API token will get automatically created, accessible on the settings page. Token needs to be passed as an authorization header with every request. Additionally session based authentication is enabled too: When you are logged into your TubeArchivist instance, you'll have access to the api in the browser for testing.
Curl example:
```shell
curl -v /api/video/<video-id>/ \
-H "Authorization: Token xxxxxxxxxx"
```
Python requests example:
```python
import requests
url = "/api/video/<video-id>/"
headers = {"Authorization": "Token xxxxxxxxxx"}
response = requests.get(url, headers=headers)
```
2022-03-29 03:17:47 +00:00
## Login View
2022-03-29 03:33:43 +00:00
Return token and user ID for username and password:
2022-03-29 03:17:47 +00:00
POST /api/login
```json
{
"username": "tubearchivist",
"password": "verysecret"
}
```
after successful login returns
```json
{
"token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"user_id": 1
}
```
2022-03-29 10:05:22 +00:00
## Video List View
/api/video/
2022-01-11 10:05:04 +00:00
## Video Item View
/api/video/\<video_id>/
2022-02-17 11:20:30 +00:00
## Video Progress View
/api/video/\<video_id>/progress
Progress is stored for each user.
### Get last player position of a video
GET /api/video/\<video_id>/progress
```json
{
"youtube_id": "<video_id>",
"user_id": 1,
"position": 100
}
```
### Post player position of video
POST /api/video/\<video_id>/progress
```json
{
"position": 100
}
```
### Delete player position of video
DELETE /api/video/\<video_id>/progress
## Channel List View
/api/channel/
### Subscribe to a list of channels
2022-01-11 10:05:04 +00:00
POST /api/channel/
```json
{
"data": [
{"channel_id": "UC9-y-6csu5WGm29I7JiwpnA", "channel_subscribed": true}
]
}
```
## Channel Item View
/api/channel/\<channel_id>/
2022-01-11 10:05:04 +00:00
## Playlists Item View
/api/playlist/\<playlist_id>/
## Download Queue List View
/api/download/
### Add list of videos to download queue
POST /api/download/
```json
{
"data": [
{"youtube_id": "NYj3DnI81AQ", "status": "pending"}
]
}
```
## Download Queue Item View
/api/download/\<video_id>/
## Ping View
Validate your connection with the API
GET /api/ping
When valid returns message with user id:
```json
{
"response": "pong",
"user": 1
}
```