PietSmiet Aggregator is a selfhostable web application that aggregates all the videos, streams and additional content from PietSmiet and displays them in a nice overview.
⭐ Dashboard - Display all PietSmiet videos and streams in a nice overview.\ ⭐ API - Free and Public JSON HTTP API.\ ⭐ PietSmietDE Import - Import all videos and news from the PietSmiet website.\ ⭐ YouTube Import - Import all community posts from the PietSmiet YouTube channel.\ ⭐ Reddit Import - Import trending posts from r/pietsmiet.\ ⭐ Instagram Import - Import all posts.\ ⭐ Streamingplan - Analyze the Streamingplan with OpenAI Vision and import scheduled streams.\ ⭐ Full Control - Selfhostable, Open Source and Dockerized.
First, download and install Docker.
Create a .env
file in the root directory of the project. You can use the .env.example
file as a template.
If you do not want to use certain features (for example the OpenAI Streamingplan Analysis), you can skip the corresponding API keys.
A docker-compose.yml
file is provided to run the application. It will start the application and a MySQL database.
docker-compose up -d
👀 You can view the application at http://localhost:5650
.
You can view the docker logs with docker-compose logs -f
.
Keep in mind that some data imports might take a while. You can view the progress of the data imports in the docker logs.\ Most data imports are executed periodically. Wait at least an hour before you start to worry about missing data.
That's all you need to know to start! 🎉
Feel free to contribute to this project. Please read the contribution guidelines before submitting a pull request.
This project has four main components:
src/psaggregator
directory.src/dataimporter
directory.src/nginx
directory.Depending on the component you want to work on, you will need the following tools:
>= 24.0.0
and docker-compose >= 2.23.0
.>= 20.0.0
and npm >= 9.6.0
.>= 3.10.0
.First, clone the repository:
git clone https://github.com/zaanposni/psaggregator.git
Then, create a .env
file in the root directory of the project. You can use the .env.example
file as a template.
If you do not want to use certain features (for example the OpenAI Streamingplan Analysis), you can skip the corresponding API keys.
Start the MySQL database and YouTubeOperationalAPI:
docker-compose -f docker-compose.dev.yml up -d
Setup the frontend
cd src/psaggregator
npm install
npm run prismagenerate
npm run prismamigrate # might be needed if the database is not initialized yet
npm run dev
Setup the dataimporter by setting up the environment variables like in the .env.example
file.\
The dataimporter uses numerous APIs to import data.\
You might want to create API keys for the APIs you want to use and skip the ones you don't want to use.
Start the dataimport scripts (the process is the same for all kind of imports)
cd src/dataimporter
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python3 pietsmietdeuploadplan.py # uploadplan does not need any API key. However - for example - reddit.py does
If you want to say thank you or/and support active development of psaggregator
:
And now, I invite you to participate in this project! Let's work together to create the most useful tool for all PietSmiet Enjoyers.
Together, we can make this project better every day!
psaggregator
is free and open-source software licensed under
the GPL-3.0 License.