commit 1924eec922aa50c95f435c448480e3f78e9814e4
parent 49ac86804e6dd0072b2610501fbf40db5fc0b88e
Author: gearsix <gearsix@tuta.io>
Date: Mon, 2 Aug 2021 14:10:36 +0100
removed symlinks;updated setup.py;updated README
Diffstat:
4 files changed, 82 insertions(+), 57 deletions(-)
diff --git a/README.txt b/README.txt
@@ -5,71 +5,101 @@ SYNOPSIS
sya.py [OPTIONS] TRACKLIST
DESCRIPTION
- sya downloads, converts and splits youtube videos using `youtube-dl` and `ffmpeg`.
- while intended for long audio mixtapes, the tools it uses are quite flexible so
- you could use it to download & split long videos as well.
+ sya downloads, converts and splits youtube videos into multiple audio
+ tracks using `youtube-dl` and `ffmpeg`.
OPTIONS
- -h --help displays help message
- -k, --keep youtube-dl option, keep the video file on disk after the
- post-processing; the video is erased by default
- -o [PATH], --output [PATH] specify the directory to write output files to
- (default: ./<tracklist filename>/)
- -f [EXT], --format [EXT] specify the --audio-format argument to pass to youtube-dl
- (default: mp3)
- -q [QUALITY], --quality [QUALITY] youtube-dl option, specify the --audio-quality argument
- to pass (default: 320K)
- --youtube-dl [PATH] path of the youtube-dl binary to use
- --ffmpeg [PATH] path of the ffmpeg binary to use
+ -h --help displays help message
+ -k, --keep
+ youtube-dl option, keep the full track on disk after post-processing,
+ the video is erased by default
+ -o, --output [PATH]
+ specify the directory to write output files to (defaults to a directory
+ named after the tracklist filename)
+ -f, --format [EXT]
+ specify the --audio-format argument to pass to youtube-dl (default: mp3)
+ -q, --quality [QUALITY]
+ specify the --audio-quality argument to pass (default: 320K)
+ --youtube-dl [PATH]
+ path of the youtube-dl binary to use
+ --ffmpeg [PATH]
+ path of the ffmpeg binary to use
TRACKLIST
TRACKLIST files should be text file that has the URL/v=code of the youtube video to
download on the first line and the starting timestamp of each section to split, followed
- by the title of that section section.
+ by the title of that section section for every line after.
- Of course, you don't have to put the timestamp first. sya will try and accomocodate
+ Of course, you don't have to put the timestamp first, sya will try and accomocodate
whatever syntax is used, just beware that this might cause problems.
Here's an example:
https://www.youtube.com/watch?v=LbjcaMAhJRQ
- ✘ Sneaky Snitch (0:00)
- ✘ Fluffing a Duck (2:16)
- ✘ Cipher (3:24)
- ✘ Scheming Weasel (7:15)
- ✘ Carefree (8:44)
- ✘ Thatched Villagers (12:09)
- ✘ Monkeys Spinning Monkeys (16:15)
- ✘ Wallpaper (18:20)
- ✘ Pixel Peeker Polka (21:59)
- ✘ Killing Time (25:21)
- ✘ Hitman (28:46)
- ✘ The Cannery (32:07)
- ✘ Cut and Run (35:09)
- ✘ Life of Riley (38:44)
- ✘ Quirky Dog (42:39)
- ✘ The Complex (45:08)
- ✘ Hyperfun (49:35)
- ✘ Black Vortex (53:29)
- ✘ Rock on Chicago (56:19)
- ✘ Volatile Reaction (57:58)
- ✘ On the Ground (1:00:44)
- ✘ Wagon Wheel (electronic) (1:03:23)
- ✘ Call to Adventure (1:08:26)
- ✘ Hustle (1:12:33)
- ✘ Cupids Revenge (1:14:34)
- ✘ Dirt Rhodes (1:16:20)
- ✘ Rhinoceros (1:18:20)
- ✘ Who Likes to Party (1:21:43)
- ✘ Spazzmatica Polka (1:26:01)
+ Sneaky Snitch (0:00)
+ Fluffing a Duck (2:16)
+ Cipher (3:24)
+ Scheming Weasel (7:15)
+ Carefree (8:44)
+ Thatched Villagers (12:09)
+ Monkeys Spinning Monkeys (16:15)
+ Wallpaper (18:20)
+ Pixel Peeker Polka (21:59)
+ Killing Time (25:21)
+ Hitman (28:46)
+ The Cannery (32:07)
+ Cut and Run (35:09)
+ Life of Riley (38:44)
+ Quirky Dog (42:39)
+ The Complex (45:08)
+ Hyperfun (49:35)
+ Black Vortex (53:29)
+ Rock on Chicago (56:19)
+ Volatile Reaction (57:58)
+ On the Ground (1:00:44)
+ Wagon Wheel (electronic) (1:03:23)
+ Call to Adventure (1:08:26)
+ Hustle (1:12:33)
+ Cupids Revenge (1:14:34)
+ Dirt Rhodes (1:16:20)
+ Rhinoceros (1:18:20)
+ Who Likes to Party (1:21:43)
+ Spazzmatica Polka (1:26:01)
+
+
+BUILDING
+ It's more convenient to build sya-pyqt into a single binary (bundled
+ with assets & libraries).
+ To do this 'pyinstaller' seems most convenient (installed via "pip
+ install pyinstaller"):
+
+ pyinstaller sya-pyqt.py --one-file --windowed --add-data "folder.png:."
+
+ This process also works to create binaries for the terminal version of the
+ tool (sya.py). When building that version, the "--windowed" and
+ "--add-data "folder.png:."" arguments don't need to be included.
INSTALL
- "sudo python ./setup.py install --record install.txt" or
- "python ./setup.py install --user --record install.txt"
+ There are a lot of ways to install this tool.
+
+ For most cases, you can just download and run the distribution binaries.
+
+ FROM SOURCE
+ This method should work on all platforms to install it for the current
+ user.
+ Note that there are a lot of ways to install a python package from
+ source, this is just one.
+
+ python ./setup.py install --user --record install.txt
+
+ The "--user" argument will only install sya for the current user. Remove
+ it to install the tool to the system, although note that this will require
+ admin permissions.
+
+ This will create a 'install.txt' file in the current directory. This file
+ contains all the files installed to your system. To uninstall using just
+ remove all of these files.
-UNINSTALL
- The 'install.txt' file from the install must be present.
- "sudo rm $(cat install.txt)".
DISCLAIMER
It should go without saying, don't use this for pirating music.
diff --git a/setup.py b/setup.py
@@ -17,10 +17,9 @@ setuptools.setup(
url='https://notabug.org/gearsix/sya',
packages=setuptools.find_packages(),
classifiers=[
- 'Programming Language :: Python',
- 'Environment :: Console',
'License :: Public Domain',
+ 'Programming Language :: Python',
'Operating System :: OS Independent',
],
- scripts=['sya', 'sya-pyqt']
+ scripts=['sya.py', 'sya-pyqt.py']
)
diff --git a/sya b/sya
@@ -1 +0,0 @@
-sya.py
-\ No newline at end of file
diff --git a/sya-pyqt b/sya-pyqt
@@ -1 +0,0 @@
-sya-pyqt.py
-\ No newline at end of file