First commit. Again. Yo ho. Again

This commit is contained in:
2026-04-01 17:29:47 +02:00
commit 6271ea7576
8 changed files with 3671 additions and 0 deletions

43
playlistpirate/build.sh Normal file
View File

@@ -0,0 +1,43 @@
#!/usr/bin/env bash
# Build standalone playlist binary with PyInstaller
# Run from the playlist/ directory
pip install pyinstaller yt-dlp rich mutagen
pyinstaller \
--onefile \
--name playlist \
--hidden-import yt_dlp \
--hidden-import mutagen.id3 \
--hidden-import mutagen.mp3 \
playlist.py
echo ""
echo "Binary at: dist/playlist"
echo "Usage:"
echo " ./dist/playlist resolve my-export.csv"
echo " ./dist/playlist search my-export-playlist.md"
echo " ./dist/playlist download my-export-playlist.md"
# GUI binary (Flask + system browser, no Qt/pywebview dependency)
pip install flask
pyinstaller \
--onefile \
--name playlist-gui \
--collect-all yt_dlp \
--hidden-import mutagen.id3 \
--hidden-import mutagen.mp3 \
--hidden-import mutagen.easyid3 \
--hidden-import flask \
--hidden-import rich \
--hidden-import rich.console \
--hidden-import rich.theme \
--hidden-import tkinter \
--hidden-import tkinter.filedialog \
gui.py
echo "GUI binary at: dist/playlist-gui"
echo "Usage: ./dist/playlist-gui"
echo " Opens in your default browser at http://localhost:<PORT>"
echo " Ctrl-C to quit."

1019
playlistpirate/gui.py Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,43 @@
# -*- mode: python ; coding: utf-8 -*-
a = Analysis(
['gui.py'],
pathex=[],
binaries=[],
datas=[],
hiddenimports=[
'mutagen.id3', 'mutagen.mp3', 'mutagen.easyid3',
'flask', 'werkzeug', 'jinja2', 'click', 'itsdangerous', 'markupsafe',
'rich', 'rich.console', 'rich.theme',
'tkinter', 'tkinter.filedialog',
],
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
collect_all=['yt_dlp'],
noarchive=False,
optimize=0,
)
pyz = PYZ(a.pure)
exe = EXE(
pyz,
a.scripts,
a.binaries,
a.datas,
[],
name='playlist-gui',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=True,
disable_windowed_traceback=False,
argv_emulation=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None,
)

1027
playlistpirate/playlist.py Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,3 @@
yt-dlp>=2024.1.0
rich>=13.0.0
mutagen>=1.47.0