First commit. Again. Yo ho. Again
This commit is contained in:
43
playlistpirate/build.sh
Normal file
43
playlistpirate/build.sh
Normal 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
1019
playlistpirate/gui.py
Normal file
File diff suppressed because it is too large
Load Diff
43
playlistpirate/playlist-gui.spec
Normal file
43
playlistpirate/playlist-gui.spec
Normal 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
1027
playlistpirate/playlist.py
Normal file
File diff suppressed because it is too large
Load Diff
3
playlistpirate/requirements.txt
Normal file
3
playlistpirate/requirements.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
yt-dlp>=2024.1.0
|
||||
rich>=13.0.0
|
||||
mutagen>=1.47.0
|
||||
Reference in New Issue
Block a user