pietsmiet-api
v0.2.0
Published
A wrapper around the (unofficial) PietSmiet.de API. pls dont sue!
Downloads
4
Readme
pietsmiet-api
An (unofficial) wrapper around the pietsmiet.de API.
Installation
npm install pietsmiet-api
Usage
Note: API requests are signed by a custom request header called x-origin-integrity. I have reverse-engineered the generation, but as this is meant to prevent abuse, its not implemented directly in this module.
Setup: Visit pietsmiet.de and inspect any (api-)request with the browser dev-tools. Copy the value for x-origin-integrity and use to initialize your PietSmietApi instance.
Constructor expects argument of type initConfig.
import PietSmietApi from "pietsmiet-api";
const API = new PietSmietApi({
userAgent: "", // insert your User-Agent (might be optional)
integrity: "", // insert (your) current x-origin-integrity
});
Endpoints:
This will be updated with more granular information soon(ish)!
.getVideos()
Used to access published videos. Expects argument of type contentRequest.
API.getVideos({
page: "1",
limit: "10",
order: "latest",
})
.then((response) => {
console.log(response);
})
.catch((error) => {
console.log(error);
});
.getPlaylists()
Used to access published playlists. Expects argument of type contentRequest.
API.getPlaylists({
page: "1",
limit: "10",
order: "latest",
})
.then((response) => {
console.log(response);
})
.catch((error) => {
console.log(error);
});
.getClips()
Used to access published clips. Expects argument of type contentRequest.
API.getClips({
page: "1",
limit: "10",
order: "latest",
})
.then((response) => {
console.log(response);
})
.catch((error) => {
console.log(error);
});
.getPodcasts()
Used to access published podcasts. Expects argument of type contentRequest.
API.getPodcasts({
page: "1",
limit: "10",
order: "latest",
})
.then((response) => {
console.log(response);
})
.catch((error) => {
console.log(error);
});
.getChannels()
Used to access channels. Expects argument of type contentRequest.
API.getChannels({
page: "1",
limit: "10",
order: "latest",
})
.then((response) => {
console.log(response);
})
.catch((error) => {
console.log(error);
});
.getAuthors()
Used to access authors.
API.getAuthors()
.then((response) => {
console.log(response);
})
.catch((error) => {
console.log(error);
});
.getNews()
Used to access published news. Expects argument of type contentRequest.
API.getNews({
page: "1",
limit: "10",
order: "latest",
})
.then((response) => {
console.log(response);
})
.catch((error) => {
console.log(error);
});
Types:
initConfig
type initConfig = {
userAgent: string; // e.g. "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36"; (might be optional)
integrity: string; // e.g. "3f3749c0";
};
contentRequest
type contentRequest = {
page: string; // pagination offset. Can be derived from last response.
limit: string; // limit results. Maximum is 500.
order: string; // choose what to sort the results by. Supported options: <latest/oldest/popular/trending>
channels?: string; // optional argument for getVideos() method. Limit search to specific channel. <8(Frag Pietsmiet)/9(pietmiet)/10(Pietsmiet TV)/12(Best of Pietsmiet)/37(PietsmietDE)/44(Streams)>
};
Build
git clone https://github.com/maxboettinger/pietsmiet-api.git
cd pietsmiet-api
npm i
npm run local