Storytime is an experiment in continuous storytelling. It is mainly a demonstration of using large language models (LLM) and other machine learning techniques to generate entertainment.
pip install -U storytimeor install with Poetry
poetry add storytime- Python 3.7.2+
- openai-python Requires an OpenAI API key for story and image generation.
- googleapis/python-texttospeech Requires a Google Cloud Platform API key for narration
- moviepy To generate videos (requires ffmpeg and ImageMagick)
- google-api-python-client and google-auth-httplib2 for uploading to YouTube
-
- It is also necesary to Register your application with Google so that it can use the OAuth 2.0 protocol to authorize access to user data,
-
- It is also necessary to verify the YouTube account that will be used to upload videos. See YouTube's documentation for more information.
-
- Each API project must also undergo an audit to verify compliance with the Terms of Service.
import storytime
# Generate a story with images
fairy_tale = generate_story(
"fairy tale",
with_images=True,
)
# Save the story to a file
fairy_tale.save_as_json()
# Download the images
fairy_tale.download_image_set()
# Add narration for the story
fairy_tale.add_narration()
# Add video for the story
create_video(fairy_tale)
# Print the story
print(fairy_tale)
# Upload the video to YouTube
upload_story(fairy_tale, video_file)Makefile contains a lot of functions for faster development.
1. Download or remove Poetry
To download and install Poetry run:
make poetry-downloadTo uninstall
make poetry-remove2. Install all dependencies and pre-commit hooks
Install requirements:
make installPre-commit hooks coulb be installed after git init via
make pre-commit-install3. Codestyle
Automatic formatting uses pyupgrade, isort and black.
make codestyle
# or use synonym
make formattingCodestyle checks only, without rewriting files:
make check-codestyleNote:
check-codestyleusesisort,blackanddarglintlibrary
Update all dev libraries to the latest version using one comand
make update-dev-deps4. Code security
make check-safetyThis command launches Poetry integrity checks as well as identifies security issues with Safety and Bandit.
make check-safety5. Type checks
Run mypy static type checker
make mypy6. Tests with coverage badges
Run pytest
make test7. All linters
Of course there is a command to rule run all linters in one:
make lintthe same as:
make test && make check-codestyle && make mypy && make check-safety8. Docker
make docker-buildwhich is equivalent to:
make docker-build VERSION=latestRemove docker image with
make docker-removeMore information about docker.
9. Cleanup
Delete pycache files
make pycache-removeRemove package build
make build-removeDelete .DS_STORE files
make dsstore-removeRemove .mypycache
make mypycache-removeOr to remove all above run:
make cleanupYou can see the list of available releases on the GitHub Releases page.
We follow Semantic Versions specification.
We use Release Drafter. As pull requests are merged, a draft release is kept up-to-date listing the changes, ready to publish when youβre ready. With the categories option, you can categorize pull requests in release notes using labels.
This project is licensed under the terms of the MIT license. See LICENSE for more details.
@misc{storytime,
author = {Myron Tuttle},
title = {Storytime is an experiment in continuous storytelling.},
year = {2022},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/myrontuttle/storytime}}
}This project was generated with python-package-template
Title font: MangabeyRegular Niskala Huruf license: Freeware link: https://www.fontspace.com/mangabey-font-f68391