370 Commits

Author SHA1 Message Date
gavin
e4dec65065 yt-dlp migration (scdl v3.0.0) (#537)
### Added

- `--yt-dlp-args <argstring>` to allow passing of yt-dlp args as a string (using yt-dlp CLI format)

### Fixed

- Make `--sync` method work as intended

### Changed

- Use [yt-dlp](https://github.com/yt-dlp/yt-dlp/) to download and process tracks
- Store description in "comment" tag instead of "description" tag for Ogg/FLAC files
- Change default track format string to include track artist and ID
- Drop `termcolor`, `requests`, `tqdm`, `pathvalidate`, `filelock` dependencies
- Switch to `pyproject.toml` instead of `setup.py`
- **Breaking:** Change `--sync` file format to include downloaded filenames

### Removed

- **Breaking:** Remove `--remove`
- **Breaking:** Remove `-n`
- **Breaking:** Drop support for Python 3.7 and 3.8
- **Breaking:** When writing to stdout, files no longer contain metadata
v3.0.0
2025-08-09 13:21:33 -04:00
7x11x13
eb555d8993 Fix CI v2.12.4 2025-02-20 11:46:21 -05:00
7x11x13
2de2f4ad15 fmt 2025-02-20 11:37:35 -05:00
7x11x13
0ed19bd213 Fix CI 2025-02-20 11:36:15 -05:00
7x11x13
ad9f0e091f Compat with older versions of filelock 2025-02-20 11:32:27 -05:00
7x11x13
0d5db38d24 Fix aac transcoding priority v2.12.3 2024-12-09 14:59:28 -05:00
7x11x13
a433ac475f Fix typecheck for 3.7 v2.12.2 2024-11-02 12:37:08 -04:00
7x11x13
eaa26fc6e3 Fix typecheck for 3.7 2024-11-02 12:27:46 -04:00
7x11x13
3b5029aac3 Fix typecheck for 3.7 2024-11-02 12:24:40 -04:00
7x11x13
43b1113467 Fix lint/typecheck 2024-11-02 12:23:24 -04:00
7x11x13
33e30d3c13 v2.12.2 2024-11-02 12:15:43 -04:00
7x11x13
743f76b368 Fallback to SoftFileLock on __enter__ 2024-11-02 12:14:58 -04:00
7x11x13
750b8a84c0 Fix tests 2024-11-02 11:55:51 -04:00
7x11x13
9732b538db Format v2.12.1 2024-08-18 11:56:58 -04:00
7x11x13
6dde8e930b Fallback to SoftFileLock if file lock fails 2024-08-18 11:54:21 -04:00
7x11x13
e499979498 v2.12.0 v2.12.0 2024-08-14 12:46:10 -04:00
Mark Henry
e06cc9c685 Add -q <search_query> command line argument (#511)
* Add -s <search_term> command line argument

* add final newline

* Format and lint

* Update README

* Update no results test to use random query

---------

Co-authored-by: 7x11x13 <x7x11x13@gmail.com>
2024-08-14 12:45:16 -04:00
7x11x13
091596c282 Fix playlist_info for original downloads v2.11.4 2024-07-30 11:20:44 -04:00
7x11x13
643aab8975 v2.11.3 v2.11.3 2024-07-26 15:49:26 -04:00
Jason Butler
43890f9336 Added '--add-description' option (#459)
* Added '--add-description' option

This new option will add the track description to a txt file (using the same filename as the music file).
Some music players will display this text whilst the track is playing - great for tracklists on DJ mixes and podcasts.

* Added subfolder switch

* Revert: Added subfolder switch

Accidently pushed to my branch by mistake - changes reverted

* Fix lint errors

* Add test for description file

* Fix tests for pull requests

---------

Co-authored-by: 7x11x13 <x7x11x13@gmail.com>
2024-07-26 15:48:11 -04:00
7x11x13
413040ecac Fix tracknumber for mp4s v2.11.2 2024-07-21 11:53:09 -04:00
7x11x13
61dc702db7 Use temp directory for automatic cleanup v2.11.1 2024-07-14 13:00:28 -04:00
7x11x13
8990483cdb Write FLACs to tempfiles 2024-07-14 12:41:34 -04:00
7x11x13
e54d57c365 ci: install ffmpeg only if linting succeeds v2.11.0 2024-07-09 14:27:40 -04:00
7x11x13
c09d01cd55 Better CI output 2024-07-09 14:25:22 -04:00
7x11x13
a3c116d0dd Don't pipe progress to stderr if hide_progress is true 2024-07-09 14:19:17 -04:00
7x11x13
9cf3b3a9be Support tagging more formats 2024-07-09 13:55:50 -04:00
7x11x13
51bd01986a More consistent tag mapping 2024-07-09 13:48:28 -04:00
7x11x13
ce0074fd75 Fix for ffmpeg versions < 4.4 v2.10.1 2024-07-09 12:40:16 -04:00
7x11x13
c0a23d04ca Only test on 3.7 and 3.12 v2.10.0 2024-07-09 11:07:07 -04:00
7x11x13
9fd4814e1f Typecheck with mypy, lint and format with ruff (#499)
* Lint and format with ruff, check types with mypy

* Fix mypy checks

* Update CI

* Remove shebangs

* Ignore EXE rules

* Fix EOL

* Fix mypy for 3.7

* Fix CI

* Fix CI

* Ensure filelock path exists

* ci: various ci fixes (#500)

---------

Co-authored-by: Arsenii es3n1n <me@es3n.in>
2024-07-09 10:51:23 -04:00
7x11x13
399ea88eab Don't add streamhandler unless main is called 2024-07-08 14:15:03 -04:00
Arsenii es3n1n
ef6de53776 Making things easier for scdl-as-a-lib users (#498)
* refactor: don't touch the global logging config

* test: skip m4a test if there's no go+ sub instead of erroring

* Log to stderr

---------

Co-authored-by: 7x11x13 <x7x11x13@gmail.com>
2024-07-08 14:10:44 -04:00
flyingrub
b688e6a977 Removed old mention of my username 2024-07-08 19:21:50 +02:00
Arsenii es3n1n
8974a997fc Track downloading refactoring, reducing amount of I/O operations, #493 (#494)
* feat: download to stdout if name is `-` #493

still a wip though, somehow i need to add metadata to these streams oh well...

* refactor: rework reencoding, metadata adding

* chore: ignore .idea

* chore: add dev requirements

* test: suppress encoding warnings

* feat: add reworked ffmpeg progress bar

* perf: use memoryview for streaming responses

* fix: fix large tracks downloading

* refactor: migrate threads to asyncio (wip)

* Revert "refactor: migrate threads to asyncio (wip)"

This reverts commit d6e247ee2f.

* refactor: get rid of the queue

* refactor: inline stderr thread, adjust buf sizes

* perf: don't reencode original wavs/hls streams

* refactor: mark threads as daemonic

* refactor: remove unused imports

* fix: reencode aacs with adts

* refactor(metadata): output a bit more detailed error message

* refactor: properly reencode m4a

* Performance improvements

* Bump version

* Update README

---------

Co-authored-by: 7x11x13 <x7x11x13@gmail.com>
2024-07-08 12:47:41 -04:00
7x11x13
69f7741c43 Progress bar for hls downloads 2024-06-27 13:28:29 -04:00
7x11x13
7438d0b600 Use maintained dependencies 2024-06-26 12:28:33 -04:00
Arsenii es3n1n
c96b308d25 Migrate from cgi.parse_header to email.message.Message due to PEP 594 (#492)
* refactor: embed cgi.parse_header

* refactor: use email.message.Message

* Remove unused import

---------

Co-authored-by: 7x11x13 <x7x11x13@gmail.com>
2024-06-26 12:10:23 -04:00
7x11x13
2430215772 Re-enable original download tests 2024-06-26 11:54:32 -04:00
7x11x13
d88897df06 Skip broken tests 2024-06-23 21:26:49 -04:00
7x11x13
8ea3721b14 Test user streams 2024-06-23 21:03:17 -04:00
7x11x13
f5801c36fc Test download archive and sync v2.9.5 2024-06-23 20:42:06 -04:00
7x11x13
7f22f4b4be Fix sync 2024-06-23 20:40:41 -04:00
7x11x13
eaf1793741 Fix get_file_lock v2.9.4 2024-06-23 20:07:09 -04:00
7x11x13
a2c4b509e2 Use filelocks on unix systems v2.9.3 2024-06-23 19:57:06 -04:00
7x11x13
a077939be7 Fix missing transcodings error v2.9.2 2024-06-23 19:31:33 -04:00
7x11x13
d74fcde85d Fix v2.9.1 2024-06-23 19:07:03 -04:00
7x11x13
5f4ad5582d Don't use filelock for unix systems v2.9.0 2024-06-23 19:04:13 -04:00
7x11x13
196d065949 Set albumartist metadata for playlists 2024-06-23 18:48:21 -04:00
7x11x13
2641a370ae Add tests 2024-06-23 18:47:40 -04:00