155 lines
7.8 KiB
Markdown
155 lines
7.8 KiB
Markdown
# .[d]. ircd.chat/6697 #tcpdirect
|
|
```
|
|
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
|
|
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMh+MMMMMMMMMMMMMMhsMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
|
|
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMm/ oMMMMMMMMMMMMMMm +NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
|
|
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMy` yMMMMMMMMMMMMMMM- -mMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
|
|
MMMMMMMMMMMMMMMMMMMMMMMMs+dMMMMMMMMMM+ sMMMMMMMMMMMMMMM- `dMMMMMMMMMMms/NMMMMMMMMMMMMMMMMMMMMMMM
|
|
MMMMMMMMMMMMMMMMMMMMMMMMM+ .omMMMMMM: -MMMMMMMMMMMMMMo `yMMMMMMMy: `dMMMMMMMMMMMMMMMMMMMMMMMM
|
|
MMMMMMMMMMMMMMMMMMMMMMMMMM- /dMMM+ sMMMMMMMMMMMMh `hMMMNo` sMMMMMMMMMMMMMMMMMMMMMMMMM
|
|
MMMMMMMMMMMMMMMMMMMMMMMMMMd :dm `mMMMMMMMMMMN. .NNo` .MMMMMMMMMMMMMMMMMMMMMMMMMM
|
|
MMMMMMMMMMMMMMMMMMMMMMMMMMM: - :MMMMMMMMMMs :` sMMMMMMMMMMMMMMMMMMMMMMMMMM
|
|
MMMMMMMMMMMMMMMMMMMMMMMMMMMs ymNMMMMMNm. NMMMMMMMMMMMMMMMMMMMMMMMMMM
|
|
MMMMMMMMMMMMMMMMMMMMMMMMMMMy `-/-` .MMMMMMMMMMMMMMMMMMMMMMMMMMM
|
|
MMMMMMMMMMMMMMMMMMMMMMMMMMMo .NMMMMMMMMMMMMMMMMMMMMMMMMMM
|
|
MMMMMMMMMMMMMMMMMMMMMMMNh+. :sdMMMMMMMMMMMMMMMMMMMMMMM
|
|
MMMMMMMMMMMMMMMMMhso+:. `-/+syMMMMMMMMMMMMMMMMM
|
|
MMMMMMMMMMMMMMMMM- dMMMMMMMMMMMMMMMM
|
|
MMMMMMMMMMMMMMMMM` `.:+/. `/s+:. sMMMMMMMMMMMMMMMM
|
|
MMMMMMMMMMMMMMMNo -oms. .//-` `:/:` `+md+` .hMMMMMMMMMMMMMMM
|
|
MMMMMMMMMMMMMNs` .odNdo. .ohmd+` :dMMMMMMMMMMMMM
|
|
MMMMMMMMMMMNo` .. .- :hMMMMMMMMMMM
|
|
MMMMMMMMMd+` -sNMMMMMMMM
|
|
MMMMMMNs- `.. `/-. `+dMMMMMM
|
|
MMMNy: ./sdNMMMh: `sNMMMNds/. .odMMM
|
|
MM+ :ymMMMMMMMMMMh. +NMMMMMMMMMMmo- /NM
|
|
MMMh: .sNMMMMMMMMMMMMMMN- `hMMMMMMMMMMMMMMMm+` :hMMM
|
|
MMMMMd:` ``-:+shmMMMMMMMMMMMMMMMMMMN. hMMMMMMMMMMMMMMMMMMMmhs+/-..``````./dMMMMM
|
|
MMMMMMMMMNNNNNNMMMMMMMMMMMMMMMMMMMMMMMMMMMo .MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
|
|
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMy .MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
|
|
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN. /MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
|
|
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN+` `+NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
|
|
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNs. -hMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
|
|
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMdyymMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
|
|
```
|
|
## summary
|
|
```
|
|
dp3 v2.1 - parallel music ripping batch processing automation utility
|
|
```
|
|
## changelog - v2.1
|
|
- fixed the way some pip modules were checked
|
|
## changelog - v2.0
|
|
- fixed some automation bugs
|
|
- added an auto-redownload feature for missed files, REDOWNLOAD_LIMIT variable is at top of code
|
|
## changelog - v1.8
|
|
- updated progress indicators to reflect differences in webm/youtube, aiff/bandcamp, wav/soundcloud
|
|
## changelog - v1.7
|
|
- added a sense of progess indication to the site indexing, helpful if you are ripping channels
|
|
- updated the dp3 tagging tool, mishandled unicode splitting and would omit downloaded files
|
|
- altered some ui elements, examples, indications and color coding
|
|
- updated the tmux layout, it wasn't tiling in fractions between perfect vertical/horizontal splits
|
|
- updated the way file progress is realized so window panes close accordingly
|
|
- changed some flags to youtube-dl so that stale downloads were not hanging large batches
|
|
## changelog - v1.6
|
|
- added MULTI-LINE mode - rather than feeding arguments as parameters you can paste a bunch on boot
|
|
- added mixed processing - can MULTI-LINE playlists from soundcloud/youtube/bandcamp intermingled
|
|
- sets/playlists/channels - these now all operate no differently than a single media link
|
|
- stepped up parallelism
|
|
- increased thread count - variable set at top of dp3.sh
|
|
- added archive prefix - variable set at top of dp3.sh
|
|
- added soundcloud
|
|
- added bandcamp
|
|
- changed archive method to include original playlist url into the process log
|
|
- changed archive method to also include the coverart into the archive as well as encoded into id3tag
|
|
- updated progress/download windows
|
|
## screenshots
|
|
---
|
|
```
|
|
MULTI-LINE mode
|
|
```
|
|
---
|
|
![screenshots](screenshots/ssa.jpg)
|
|
![screenshots](screenshots/ssb.jpg)
|
|
![screenshots](screenshots/ssc.jpg)
|
|
![screenshots](screenshots/sse.jpg)
|
|
---
|
|
```
|
|
command line mode
|
|
```
|
|
---
|
|
![screenshots](screenshots/ss1.jpg)
|
|
![screenshots](screenshots/ss2.jpg)
|
|
![screenshots](screenshots/ss3.jpg)
|
|
![screenshots](screenshots/ss4.jpg)
|
|
![screenshots](screenshots/ss5.jpg)
|
|
![screenshots](screenshots/ss6.jpg)
|
|
## overview
|
|
```
|
|
you supply this script a playlist from either bandcamp, soundcloud or youtube and it will mass download
|
|
all of that media content in parallel. the files will then be renamed to a different naming method, the
|
|
information like coverart, name, artist, url, notes and other text are encoded into the mp3s as well
|
|
as the urls as to where the content came from. a playlist is created and then the content is archived.
|
|
[ batch / rip / encode / rename / art / tag / playlist ]
|
|
```
|
|
## prerequisites
|
|
- `python3`
|
|
- `python3-pip`
|
|
- `tmux`
|
|
- `parallel`
|
|
- `jq`
|
|
- `elinks`
|
|
- `youtube-dl`
|
|
- `ffmpeg`
|
|
## content
|
|
- dp3.sh - *main file*
|
|
## usage
|
|
```
|
|
command line mode
|
|
```
|
|
- syntax: `bash dp3.sh name_of_playlist genre_of_playlist url_to_playlist`
|
|
- example: `bash dp3.sh dr1pp1ng techno https://www.youtube.com/playlist?list=PLrdcKN79B4UG1xoQ8-L3eiaI1cYzFCiW`
|
|
```
|
|
MULTI-LINE mode
|
|
```
|
|
- syntax: `bash dp3.sh` - *without arguments* - when the script loads it will be accepting MULTI-LINE input
|
|
- example: MULTI-LINE paste.. first line - playlist name, 2nd line - genre, rest of the lines can be intermingled
|
|
```
|
|
`bash dp3.sh`
|
|
|
|
[ ENTER MULTI-LINE PLAYLISTS, PRESS CTRL+D WHEN YOU'RE DONE OR CTRL+C TO ABORT ]
|
|
|
|
dr1pr3kt_dp3_t3st
|
|
mixed
|
|
https://www.youtube.com/playlist?list=PLrdcKN79B4UEatA0qrCJkxQrWGoIP4h3T
|
|
https://www.youtube.com/playlist?list=PLrdcKN79B4UEUJWovJJpG6nGpy9eVpP9T
|
|
https://www.youtube.com/channel/UCT__fJTyOLsXxzyfeJllGJA
|
|
https://soundcloud.com/whiteeyes
|
|
https://www.youtube.com/c/eliozie
|
|
https://the--hacker.bandcamp.com/
|
|
https://saralandry.bandcamp.com/
|
|
https://schwefelgelb.bandcamp.com/
|
|
https://www.youtube.com/channel/UClaFw_6RjEF-LVFMe_3V2KQ
|
|
https://soundcloud.com/phosgore
|
|
https://snts.bandcamp.com/album/the-unfinished-fight-against-humanity-lp
|
|
https://soundcloud.com/vanta_sec
|
|
https://soundcloud.com/daxj
|
|
https://blackdresses.bandcamp.com/album/forget-your-own-face?from=hp
|
|
https://bspliveseries.bandcamp.com/album/bsp-live-series-2021-09-04-kharkiv?from=hp
|
|
https://ohmresistance.bandcamp.com/album/heroes-of-snake-island-i?from=hp
|
|
https://youwillloveeachother.bandcamp.com/album/disco4-part-ii?from=hp
|
|
https://svaj.bandcamp.com/album/rewind-ep?from=hp
|
|
https://gregpuciato.bandcamp.com/album/mirrorcell?from=hp
|
|
https://jkflesh.bandcamp.com/album/new-religions-old-rules?from=hp
|
|
https://shilparay.bandcamp.com/album/portrait-of-a-lady?from=hp
|
|
|
|
^D
|
|
|
|
```
|
|
|
|
## setting up environment
|
|
- `git clone --recursive https://git.tcp.direct/decoded/dp3.git`
|
|
## notes
|
|
- playlist/genre names dont matter but the url must be valid otherwise there is nothing to download
|
|
- if a window seems hung leave it alone, some files probably still encoding
|
|
- if it does indeed crash it's probably because the playlist is private, it needs to be public or unlisted
|