sya

split youtube audio tracks, with an optional pyqt gui
git clone git://src.gearsix.net/sya
Log | Files | Refs | Atom | README

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:
MREADME.txt | 130+++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------
Msetup.py | 5++---
Dsya | 2--
Dsya-pyqt | 2--
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