A tool to manage and partially automize the title for episodic video titles and descriptions
Project description
EpisodeNames - a copy paste experience
This is a needlessly complicated tool for a simple job.
The situation was as follows: since 14 years, I create YouTube videos, mostly start-stop lets plays that honestly barely anyone watches. But, I do care and its a good way to get single player games done. Anyway, what I also care about is a proper naming scheme and numbering of all those videos and their description. Over the years I amassed over 10000 videos. My biggest project is Elder Scrolls Online which alone reached 2000 Videos soon. The naming scheme for each episode is quite complicated and I have to iterate some numbers for every single video, some for sessions.
The solution is this overengineered piece of equipment:
tl;dr: this is a textual testing ground slash pattern mine for future projects. Think Factorio when you first build a base to have the resource to get to the real base
On the left a tree view with all my projects, on the right the currently active view of all the episodes. A simple key combination copies the assigned template text to the clipboard (using pyperclip currently). There is also a screen to edit templates and projects.
If this were the only thing I wanted I could have just used some scripts that use an SQLite database directly and I would have inputed the data via an database explorer. Or some pre-fabbed input mask. But I like TUIs and I cannot lie.
So here we are now, mostly this is a big learning experience for me to try different TUI design patterns.
Currently I got ModalScreens, ScreenModes, Notify and some TextArea going for me. There is some other experimentation as well. I use the peeweeORM for this one, I never touched it before and I saw it in some random project and wanted to try it. I am not so sure if its the right way, but I hope my software stack is sound and allows, if the need arises, to replace everything under the hood.
How to install
- Check out git
- Change to folder
- Create virtual environment
$ python3 -m venv venv - Activate venv
$ source venv/bin/activate $ pip install -e .for editable module installation, this should, hopefully resolve all dependencies$ python3 episode_names/app.py
Or, theoretically it should now also work with UV, if I got all the things right and haven't configured it horribly
uv tool run episode-names
Todos
- Making the entire workflow in interface possible
- Creating, Editing, Deleting Templates
- Assigning Templates to Episodes
- Creating Projects
- Logic functions that keep internal numbering consistent
- Styling - different colors than default partially solved by textual 0.86?
- Import/Export of data
- Use proper tools for i18n and not some thrown together gobbligob
- Use proper user folders
- add some cli flags for db folders and stuff (user profiles? why though?)
- rearrange files by screens and modals
- make project tree view more sophisticated
- sort projects by episode edited data and category alphabetical
- revamp database scheme, currently everything is NotNull and got no defaults in SQL
- Hide/Show Keyboard shortcuts in EpisodeScreen based on currently active modal
- Make it so that the db connector does not create objects that are basically empty / work more with SQL restraints
- Selected Export for only parts of the projects
Ideas
- Import of all existing stuff I got on YouTube, separate descriptions from rest and make this the one-stop management solution for all my videos
- Find title duplicates
- save additional meta data
- make the interface more sleek and faster to use for the haxxor experience
- hide currently not relevant keyboard shortcuts
- I am currently loading all Episodes from the database multiple times to populate views. This should always be fast even if I had thousands of entries..yet, maybe I should still cache those and only update deltas when needed? It would be way more complicated, but, as an exercise, better
Know Issues
- Cannot duplicate template yet
- For some reason I broke the scroll ability of my main Datatable that contains the episodes, I added a ScrollView but this should not be necessary
- Some number inconsistency, sometimes -1 is assigned which is a bad way
- The project tree view has no scroll bar...
- I would like to have the table of content for the Notes, but that doesn't work at all
- When updating to a new version that got a different database scheme..there is no way to know that. As a casual user you just get greeted with empty data
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file episode_names-0.2.3.tar.gz.
File metadata
- Download URL: episode_names-0.2.3.tar.gz
- Upload date:
- Size: 32.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
15ac4703d8531fcab4ffb7d211b194d0e8763f1c70948219973a9b730e9a3ef3
|
|
| MD5 |
4e0cbd9a870460a722f3cd3238a27fba
|
|
| BLAKE2b-256 |
067d761933dc5772860bb90be406dc36a4e2beabb458e027a9304929878910c4
|
File details
Details for the file episode_names-0.2.3-py3-none-any.whl.
File metadata
- Download URL: episode_names-0.2.3-py3-none-any.whl
- Upload date:
- Size: 83.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
35c7f2bd517832d00e82dde8a43cb72a580d8397aff4738af5be07fee7397623
|
|
| MD5 |
3bd676327970bb5b4b363013d6e0f435
|
|
| BLAKE2b-256 |
9a13eac5692d2588d74f5b4ff12121b33158b618505e3bc0be8795971ff26644
|