Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
8e87f9e
Some changes
Taris9047 Jun 27, 2020
835ab5c
Changed m4a codec.
kshin264381 Aug 6, 2020
bdb9b05
Just simple clean up script
kshin264381 Aug 6, 2020
2c4ddf9
added cleaning script for UNIX
Taris9047 Aug 8, 2020
82d89b9
Now this script is truely portable!! Compile it with Pyinstaller to m…
kshin264381 Aug 8, 2020
c62ae3d
Repaired tagging for m4a
Taris9047 Aug 9, 2020
026dc44
A bit of changes ...
kshin264381 Aug 9, 2020
a89e6fc
Attached GUI for tracks.txt file..
kshin264381 Aug 9, 2020
82c35ef
added tkinter into hidden hook for split.spec.
kshin264381 Aug 9, 2020
bf8badc
Changed behavior for tracks.txt
kshin264381 Aug 9, 2020
8d61a4d
Changed the tracks editor backend...
kshin264381 Aug 10, 2020
3bd6fa6
A few more fixes.
Taris9047 Aug 12, 2020
6c97f1f
Big file problem solved!
kshin264381 Aug 12, 2020
b4a331a
Fixed a few hiccups!
kshin264381 Aug 12, 2020
fc77d56
Yet more changes!
kshin264381 Aug 12, 2020
34a1a30
Resolved stupid path problem!
kshin264381 Aug 12, 2020
22e62ae
Now Youtube-Dl doesn't waste space with wav format.
kshin264381 Aug 12, 2020
8235ec0
Finally, this pesky UTF-8 problem seems gone
kshin264381 Aug 12, 2020
c6d855e
-yt bitrate fix.
kshin264381 Aug 13, 2020
c88005f
Decided to increase default bitrate for YouTube 192k..
kshin264381 Aug 13, 2020
b1e596e
Implemented a few profile shortcuts for fdk_aac..
kshin264381 Aug 13, 2020
2d4959d
Added makefile
Taris9047 Aug 15, 2020
ace5d84
Added more formats!!
kshin264381 Aug 15, 2020
25a8154
Fixed a few problems.
kshin264381 Aug 16, 2020
c5b8fc5
eeek
kshin264381 Aug 16, 2020
5cf8da0
more changes
kshin264381 Aug 16, 2020
8cef9f7
Improved GUI.
kshin264381 Aug 16, 2020
d3b9669
Forgot an option running subprocess.
Taris9047 Aug 17, 2020
69445d4
tracks editor improved!
kshin264381 Aug 17, 2020
f50c56b
it was intended to be 'build' not buil..
kshin264381 Aug 23, 2020
3b859a1
Now the GUI handles parsor a bit better.
Taris9047 Aug 30, 2020
e5c081f
clean.sh removes cache as well.
Taris9047 Oct 10, 2020
d5f7e11
Menial changes - merely testing out VSCode.
kshin264381 Dec 12, 2020
25dd060
Merge branch 'master' of https://github.com/Taris9047/album-splitter
kshin264381 Dec 12, 2020
6f8dd9e
Pyinstaller output file name change...
Taris9047 Oct 1, 2022
3136bee
Updated outdated youtube_dl to yt_dlp
Taris9047 Apr 16, 2023
24b8923
Added more extensions to gitignore
Taris9047 Apr 16, 2023
346f1ea
Conda env set up info. added.
Taris9047 Oct 14, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,14 @@
venv/
*.pyc
*.mp3
*.m4a
*.wav
splits/
__pycache__/
.idea
tracks.txt
tracks.txt
build/
dist/
./split
./split.exe
*.txt
1 change: 1 addition & 0 deletions .zedstate
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"split":"1","session.current":["/make_install.bat"],"session.open":{"/make_install.bat":{"scrollTop":0,"scrollLeft":0,"selection":{"start":{"row":8,"column":5},"end":{"row":8,"column":5}},"lastUse":1598207031092,"undo":[[{"group":"doc","deltas":[{"action":"insertText","range":{"start":{"row":5,"column":14},"end":{"row":5,"column":15}},"text":"d"}]}]],"redo":[]},"/clean.bat":{"scrollTop":0,"scrollLeft":0,"selection":{"start":{"row":0,"column":0},"end":{"row":0,"column":0}},"lastUse":1598207028537,"undo":[],"redo":[]},"/Makefile":{"scrollTop":0,"scrollLeft":0,"selection":{"start":{"row":17,"column":21},"end":{"row":17,"column":21}},"lastUse":1598206879904,"undo":[],"redo":[]},"/split.py":{"scrollTop":0,"scrollLeft":0,"selection":{"start":{"row":0,"column":0},"end":{"row":0,"column":0}},"lastUse":1598206841919,"undo":[],"redo":[]},"/split.exe":{"scrollTop":6600,"scrollLeft":0,"selection":{"start":{"row":20,"column":34},"end":{"row":20,"column":34}},"lastUse":1598206826524,"undo":[],"redo":[]},"/setup.cfg":{"scrollTop":0,"scrollLeft":0,"selection":{"start":{"row":3,"column":0},"end":{"row":3,"column":0}},"lastUse":1598206809204,"undo":[],"redo":[]},"/clean.sh":{"scrollTop":0,"scrollLeft":0,"selection":{"start":{"row":0,"column":0},"end":{"row":0,"column":0}},"lastUse":1598206763280,"undo":[],"redo":[]}},"window":{"width":1207,"height":1041,"top":32,"left":677,"isMaximized":false}}
19 changes: 19 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
CC=pyinstaller
PYOPT=PYTHONOPTIMIZE=1
INST_DIR=/usr/local/bin/
UTILS=./utils/__init__.py ./utils/ffmpeg_utils.py ./utils/parsed_result.py ./utils/time_to_seconds.py ./utils/tracks_editor.py ./utils/update_time_change.py ./utils/find.py ./utils/split_song.py ./utils/track_parser.py ./utils/tracks_parser.py ./utils/write_tracks_to_file.py
METADATA=./MetaDataProviders/Amazon.py ./MetaDataProviders/Wikipedia.py
DEPS=split.py split.spec split_init.py $(UTILS) $(METADATA)
OUTF_NAME=album-split

split: $(DEPS)
$(PYOPT) $(CC) ./split.spec
cp -vf ./dist/split ./$(OUTF_NAME)

install: $(OUTF_NAME)
rsync -av ./$(OUTF_NAME) $(INST_DIR)

all: split

clean:
. ./clean.sh
39 changes: 21 additions & 18 deletions MetaDataProviders/Amazon.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,23 +10,26 @@

VALID_URL = "https?://(?:\w+\.)?amazon\..*/.*"

class Amazon:
def __init__(self):
pass

def lookup(url, tracks_filename):
opener = build_opener()
opener.addheaders = [('User-agent', 'Album-Splitter')]
page_html = opener.open(url).read()
page = BeautifulSoup(page_html, 'html.parser')
song_table = page.find(id='dmusic_tracklist_content')
if not song_table:
return None
def lookup(self, url, tracks_filename):
opener = build_opener()
opener.addheaders = [('User-agent', 'Album-Splitter')]
page_html = opener.open(url).read()
page = BeautifulSoup(page_html, 'html.parser')
song_table = page.find(id='dmusic_tracklist_content')
if not song_table:
return None

song_lines = song_table.findAll('tr')
# first line of table is a header
del(song_lines[0])
track_titles = []
track_times = []
for line in song_lines:
track_titles.append(line.find(attrs={'class': 'TitleLink'}).text.strip())
track_times.append(line.find(id=re.compile("dmusic_tracklist_duration.*")).text.strip())
utils.write_tracks_to_file(track_times, track_titles, tracks_filename)
return True
song_lines = song_table.findAll('tr')
# first line of table is a header
del(song_lines[0])
track_titles = []
track_times = []
for line in song_lines:
track_titles.append(line.find(attrs={'class': 'TitleLink'}).text.strip())
track_times.append(line.find(id=re.compile("dmusic_tracklist_duration.*")).text.strip())
utils.write_tracks_to_file(track_times, track_titles, tracks_filename)
return True
57 changes: 30 additions & 27 deletions MetaDataProviders/Wikipedia.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,33 +9,36 @@

VALID_URL = "https?://(?:\w+\.)?wikipedia\..*/.*"


def lookup(url, tracks_filename):
opener = build_opener()
opener.addheaders = [('User-agent', 'Album-Splitter')]
page_html = opener.open(url).read()
soup = BeautifulSoup(page_html, 'html.parser')
song_table = soup.find_all(class_='tracklist')
if not song_table:
return None

rows = song_table[0].find_all('tr')
# first line of table is a headerrows[0]
number_of_columns = find_number_of_columns(rows[0])
del(rows[0])

track_titles = []
track_times = []
for row in rows:
tds = row.find_all('td')
if len(tds) == number_of_columns:
try:
track_titles.append(tds[1].get_text())
except TypeError:
break
track_times.append(tds[number_of_columns-1].get_text())
write_tracks_to_file(track_times, track_titles, tracks_filename)
return True
class Wikipedia:
def __init__(self):
pass

def lookup(self, url, tracks_filename):
opener = build_opener()
opener.addheaders = [('User-agent', 'Album-Splitter')]
page_html = opener.open(url).read()
soup = BeautifulSoup(page_html, 'html.parser')
song_table = soup.find_all(class_='tracklist')
if not song_table:
return None

rows = song_table[0].find_all('tr')
# first line of table is a headerrows[0]
number_of_columns = find_number_of_columns(rows[0])
del(rows[0])

track_titles = []
track_times = []
for row in rows:
tds = row.find_all('td')
if len(tds) == number_of_columns:
try:
track_titles.append(tds[1].get_text())
except TypeError:
break
track_times.append(tds[number_of_columns-1].get_text())
write_tracks_to_file(track_times, track_titles, tracks_filename)
return True


def find_number_of_columns(table_header):
Expand Down
Empty file removed MetaDataProviders/__init.py__
Empty file.
2 changes: 2 additions & 0 deletions MetaDataProviders/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
from .Amazon import Amazon
from .Wikipedia import Wikipedia
10 changes: 10 additions & 0 deletions clean.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
@echo off
del /Q /F .\*.wav .\*.mp3 .\*.m4a .\*.opus .\*.ogg .\*.flac 2>nul
rmdir /S /Q .\build 2>nul
rmdir /S /Q .\dist 2>nul
rmdir /S /Q .\splits 2>nul
del /Q /F .\tracks.txt .\*_tracks.txt 2>nul
del /Q /F *.webm.part 2>nul
del /Q /F .\split.exe 2>nul
del /Q /F .\__pycache__ .\utils\__pycache__ .\MetadataProviders\__pycache__ 2>nul

8 changes: 8 additions & 0 deletions clean.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/bin/sh
rm -rvf ./*.wav ./*.mp4 ./*.m4a ./*.mp3 ./*.opus ./*.ogg ./*.flac
rm -rvf ./build ./dist
rm -rvf ./splits/*
rm -rvf ./tracks.txt ./*_tracks.txt
rm -rvf ./*.webm.part
rm -rfv ./split
rm -rvf ./__pycache__ ./utils/__pycache__ ./MetadataProviders/__pycache__
9 changes: 9 additions & 0 deletions make_install.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
@echo off
rem pip install -U pyinstaller
set PYTHONOPTIMIZE=1 && pyinstaller .\split.spec
copy /Y .\dist\split.exe .\

if %1 == "build" GOTO DONE
copy /Y .\split.exe "C:\FFMpeg\bin"

:DONE
1 change: 1 addition & 0 deletions requirements/conda.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
conda create -n albumsplit python=3.9 flake8 pyinstaller beautifulsoup4 ffmpeg
3 changes: 2 additions & 1 deletion requirements/dev.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
-r prod.txt
flake8==3.3.0
flake8
pyinstaller
12 changes: 7 additions & 5 deletions requirements/prod.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
beautifulsoup4==4.4.0
mutagen==1.31
pydub==0.14.2
urlparse3==1.0.3
youtube-dl
beautifulsoup4
mutagen
pydub
urlparse3
PyQt5>=5.6
sip
yt_dlp
Loading