SpotDown 0.0.8__tar.gz → 0.1.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. spotdown-0.1.1/MANIFEST.in +3 -0
  2. {spotdown-0.0.8/SpotDown.egg-info → spotdown-0.1.1}/PKG-INFO +17 -16
  3. {spotdown-0.0.8 → spotdown-0.1.1}/README.md +7 -9
  4. spotdown-0.1.1/SpotDown/__init__.py +7 -0
  5. spotdown-0.1.1/SpotDown/upload/version.py +5 -0
  6. {spotdown-0.0.8 → spotdown-0.1.1/SpotDown.egg-info}/PKG-INFO +17 -16
  7. {spotdown-0.0.8 → spotdown-0.1.1}/SpotDown.egg-info/SOURCES.txt +1 -0
  8. spotdown-0.1.1/SpotDown.egg-info/entry_points.txt +2 -0
  9. spotdown-0.1.1/setup.py +50 -0
  10. spotdown-0.0.8/MANIFEST.in +0 -3
  11. spotdown-0.0.8/SpotDown/downloader/__init__.py +0 -0
  12. spotdown-0.0.8/SpotDown.egg-info/entry_points.txt +0 -2
  13. spotdown-0.0.8/setup.py +0 -46
  14. {spotdown-0.0.8 → spotdown-0.1.1}/LICENSE +0 -0
  15. {spotdown-0.0.8/SpotDown → spotdown-0.1.1/SpotDown/downloader}/__init__.py +0 -0
  16. {spotdown-0.0.8 → spotdown-0.1.1}/SpotDown/downloader/youtube_downloader.py +0 -0
  17. {spotdown-0.0.8 → spotdown-0.1.1}/SpotDown/extractor/__init__.py +0 -0
  18. {spotdown-0.0.8 → spotdown-0.1.1}/SpotDown/extractor/spotify_extractor.py +0 -0
  19. {spotdown-0.0.8 → spotdown-0.1.1}/SpotDown/extractor/youtube_extractor.py +0 -0
  20. {spotdown-0.0.8 → spotdown-0.1.1}/SpotDown/main.py +0 -0
  21. {spotdown-0.0.8 → spotdown-0.1.1}/SpotDown/utils/__init__.py +0 -0
  22. {spotdown-0.0.8 → spotdown-0.1.1}/SpotDown/utils/config_json.py +0 -0
  23. {spotdown-0.0.8 → spotdown-0.1.1}/SpotDown/utils/console_utils.py +0 -0
  24. {spotdown-0.0.8 → spotdown-0.1.1}/SpotDown/utils/file_utils.py +0 -0
  25. {spotdown-0.0.8 → spotdown-0.1.1}/SpotDown/utils/headers.py +0 -0
  26. {spotdown-0.0.8 → spotdown-0.1.1}/SpotDown.egg-info/dependency_links.txt +0 -0
  27. {spotdown-0.0.8 → spotdown-0.1.1}/SpotDown.egg-info/requires.txt +0 -0
  28. {spotdown-0.0.8 → spotdown-0.1.1}/SpotDown.egg-info/top_level.txt +0 -0
  29. {spotdown-0.0.8 → spotdown-0.1.1}/requirements.txt +0 -0
  30. {spotdown-0.0.8 → spotdown-0.1.1}/setup.cfg +0 -0
@@ -0,0 +1,3 @@
1
+ include README.md
2
+ include requirements.txt
3
+ include SpotDown/upload/version.py
@@ -1,11 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: SpotDown
3
- Version: 0.0.8
4
- Home-page: https://github.com/Arrowar/SpotDown
3
+ Version: 0.1.1
4
+ Summary: A command-line program to download music
5
+ Home-page: https://github.com/Arrowar/spotdown
5
6
  Author: Arrowar
6
- Project-URL: Bug Reports, https://github.com/Arrowar/SpotDown/issues
7
- Project-URL: Source, https://github.com/Arrowar/SpotDown
8
- Keywords: streaming community
7
+ Author-email: author@example.com
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
10
+ Classifier: Operating System :: OS Independent
9
11
  Requires-Python: >=3.8
10
12
  Description-Content-Type: text/markdown
11
13
  License-File: LICENSE
@@ -18,14 +20,15 @@ Requires-Dist: unidecode
18
20
  Requires-Dist: yt-dlp
19
21
  Requires-Dist: Pillow
20
22
  Dynamic: author
23
+ Dynamic: author-email
24
+ Dynamic: classifier
21
25
  Dynamic: description
22
26
  Dynamic: description-content-type
23
27
  Dynamic: home-page
24
- Dynamic: keywords
25
28
  Dynamic: license-file
26
- Dynamic: project-url
27
29
  Dynamic: requires-dist
28
30
  Dynamic: requires-python
31
+ Dynamic: summary
29
32
 
30
33
  <div align="center">
31
34
 
@@ -54,21 +57,19 @@ Dynamic: requires-python
54
57
  ## 📋 Table of Contents
55
58
 
56
59
  - [✨ Features](#features)
57
- - [🛠️ Installation](#installation)
60
+ - [🛠️ Installation](#️installation)
58
61
  - [⚙️ Configuration](#configuration)
59
62
  - [💻 Usage](#usage)
60
- - [📁 Project Structure](#project-structure)
61
- - [🔧 Dependencies](#dependencies)
62
63
  - [⚠️ Disclaimer](#disclaimer)
63
64
 
64
- ## Features
65
+ ## Features
65
66
 
66
67
  - 🎵 **Download individual songs** from Spotify
67
68
  - 📋 **Download entire playlists** with ease
68
69
  - 🔍 **No authentication required** - uses web scraping
69
70
  - 🎨 **Automatic cover art embedding** (JPEG format)
70
71
 
71
- ## 🛠️ Installation
72
+ ## Installation
72
73
 
73
74
  ### Prerequisites
74
75
 
@@ -99,7 +100,7 @@ if __name__ == "__main__":
99
100
  main()
100
101
  ```
101
102
 
102
- ## ⚙️ Configuration
103
+ ## Configuration
103
104
 
104
105
  SpotDown uses a JSON configuration file with the following structure:
105
106
 
@@ -134,7 +135,7 @@ SpotDown uses a JSON configuration file with the following structure:
134
135
  - **`headless`**: Run browser in background (recommended: true)
135
136
  - **`timeout`**: Browser timeout in seconds
136
137
 
137
- ## 💻 Usage
138
+ ## Usage
138
139
 
139
140
  ### Basic Usage
140
141
 
@@ -157,13 +158,13 @@ python run.py
157
158
  2. Paste the Spotify playlist URL when prompted
158
159
  3. All songs in the playlist will be downloaded automatically
159
160
 
160
- ## 📝 To Do
161
+ ## To Do
161
162
 
162
163
  - [ ] Implement batch download queue
163
164
  - [ ] Add GUI interface option
164
165
  - [ ] Support for additional music platforms
165
166
 
166
- ## ⚠️ Disclaimer
167
+ ## Disclaimer
167
168
 
168
169
  This software is provided "as is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, and noninfringement.
169
170
 
@@ -25,21 +25,19 @@
25
25
  ## 📋 Table of Contents
26
26
 
27
27
  - [✨ Features](#features)
28
- - [🛠️ Installation](#installation)
28
+ - [🛠️ Installation](#️installation)
29
29
  - [⚙️ Configuration](#configuration)
30
30
  - [💻 Usage](#usage)
31
- - [📁 Project Structure](#project-structure)
32
- - [🔧 Dependencies](#dependencies)
33
31
  - [⚠️ Disclaimer](#disclaimer)
34
32
 
35
- ## Features
33
+ ## Features
36
34
 
37
35
  - 🎵 **Download individual songs** from Spotify
38
36
  - 📋 **Download entire playlists** with ease
39
37
  - 🔍 **No authentication required** - uses web scraping
40
38
  - 🎨 **Automatic cover art embedding** (JPEG format)
41
39
 
42
- ## 🛠️ Installation
40
+ ## Installation
43
41
 
44
42
  ### Prerequisites
45
43
 
@@ -70,7 +68,7 @@ if __name__ == "__main__":
70
68
  main()
71
69
  ```
72
70
 
73
- ## ⚙️ Configuration
71
+ ## Configuration
74
72
 
75
73
  SpotDown uses a JSON configuration file with the following structure:
76
74
 
@@ -105,7 +103,7 @@ SpotDown uses a JSON configuration file with the following structure:
105
103
  - **`headless`**: Run browser in background (recommended: true)
106
104
  - **`timeout`**: Browser timeout in seconds
107
105
 
108
- ## 💻 Usage
106
+ ## Usage
109
107
 
110
108
  ### Basic Usage
111
109
 
@@ -128,13 +126,13 @@ python run.py
128
126
  2. Paste the Spotify playlist URL when prompted
129
127
  3. All songs in the playlist will be downloaded automatically
130
128
 
131
- ## 📝 To Do
129
+ ## To Do
132
130
 
133
131
  - [ ] Implement batch download queue
134
132
  - [ ] Add GUI interface option
135
133
  - [ ] Support for additional music platforms
136
134
 
137
- ## ⚠️ Disclaimer
135
+ ## Disclaimer
138
136
 
139
137
  This software is provided "as is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, and noninfringement.
140
138
 
@@ -0,0 +1,7 @@
1
+ # 11.03.25
2
+
3
+ from .main import run
4
+
5
+ __all__ = [
6
+ "run",
7
+ ]
@@ -0,0 +1,5 @@
1
+ __title__ = 'SpotDown'
2
+ __version__ = '0.1.1'
3
+ __author__ = 'Arrowar'
4
+ __description__ = 'A command-line program to download music'
5
+ __copyright__ = 'Copyright 2025'
@@ -1,11 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: SpotDown
3
- Version: 0.0.8
4
- Home-page: https://github.com/Arrowar/SpotDown
3
+ Version: 0.1.1
4
+ Summary: A command-line program to download music
5
+ Home-page: https://github.com/Arrowar/spotdown
5
6
  Author: Arrowar
6
- Project-URL: Bug Reports, https://github.com/Arrowar/SpotDown/issues
7
- Project-URL: Source, https://github.com/Arrowar/SpotDown
8
- Keywords: streaming community
7
+ Author-email: author@example.com
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
10
+ Classifier: Operating System :: OS Independent
9
11
  Requires-Python: >=3.8
10
12
  Description-Content-Type: text/markdown
11
13
  License-File: LICENSE
@@ -18,14 +20,15 @@ Requires-Dist: unidecode
18
20
  Requires-Dist: yt-dlp
19
21
  Requires-Dist: Pillow
20
22
  Dynamic: author
23
+ Dynamic: author-email
24
+ Dynamic: classifier
21
25
  Dynamic: description
22
26
  Dynamic: description-content-type
23
27
  Dynamic: home-page
24
- Dynamic: keywords
25
28
  Dynamic: license-file
26
- Dynamic: project-url
27
29
  Dynamic: requires-dist
28
30
  Dynamic: requires-python
31
+ Dynamic: summary
29
32
 
30
33
  <div align="center">
31
34
 
@@ -54,21 +57,19 @@ Dynamic: requires-python
54
57
  ## 📋 Table of Contents
55
58
 
56
59
  - [✨ Features](#features)
57
- - [🛠️ Installation](#installation)
60
+ - [🛠️ Installation](#️installation)
58
61
  - [⚙️ Configuration](#configuration)
59
62
  - [💻 Usage](#usage)
60
- - [📁 Project Structure](#project-structure)
61
- - [🔧 Dependencies](#dependencies)
62
63
  - [⚠️ Disclaimer](#disclaimer)
63
64
 
64
- ## Features
65
+ ## Features
65
66
 
66
67
  - 🎵 **Download individual songs** from Spotify
67
68
  - 📋 **Download entire playlists** with ease
68
69
  - 🔍 **No authentication required** - uses web scraping
69
70
  - 🎨 **Automatic cover art embedding** (JPEG format)
70
71
 
71
- ## 🛠️ Installation
72
+ ## Installation
72
73
 
73
74
  ### Prerequisites
74
75
 
@@ -99,7 +100,7 @@ if __name__ == "__main__":
99
100
  main()
100
101
  ```
101
102
 
102
- ## ⚙️ Configuration
103
+ ## Configuration
103
104
 
104
105
  SpotDown uses a JSON configuration file with the following structure:
105
106
 
@@ -134,7 +135,7 @@ SpotDown uses a JSON configuration file with the following structure:
134
135
  - **`headless`**: Run browser in background (recommended: true)
135
136
  - **`timeout`**: Browser timeout in seconds
136
137
 
137
- ## 💻 Usage
138
+ ## Usage
138
139
 
139
140
  ### Basic Usage
140
141
 
@@ -157,13 +158,13 @@ python run.py
157
158
  2. Paste the Spotify playlist URL when prompted
158
159
  3. All songs in the playlist will be downloaded automatically
159
160
 
160
- ## 📝 To Do
161
+ ## To Do
161
162
 
162
163
  - [ ] Implement batch download queue
163
164
  - [ ] Add GUI interface option
164
165
  - [ ] Support for additional music platforms
165
166
 
166
- ## ⚠️ Disclaimer
167
+ ## Disclaimer
167
168
 
168
169
  This software is provided "as is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, and noninfringement.
169
170
 
@@ -16,6 +16,7 @@ SpotDown/downloader/youtube_downloader.py
16
16
  SpotDown/extractor/__init__.py
17
17
  SpotDown/extractor/spotify_extractor.py
18
18
  SpotDown/extractor/youtube_extractor.py
19
+ SpotDown/upload/version.py
19
20
  SpotDown/utils/__init__.py
20
21
  SpotDown/utils/config_json.py
21
22
  SpotDown/utils/console_utils.py
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ spotdown = SpotDown.main:run
@@ -0,0 +1,50 @@
1
+ # 05.04.2024
2
+
3
+ from setuptools import setup, find_packages
4
+ from pathlib import Path
5
+
6
+ base_dir = Path(__file__).resolve().parent
7
+
8
+
9
+ # Read version
10
+ version = {}
11
+ version_file = base_dir / "SpotDown" / "upload" / "version.py"
12
+ with open(version_file, encoding="utf-8") as f:
13
+ exec(f.read(), version)
14
+
15
+ # Read requirements
16
+ requirements_file = base_dir / "requirements.txt"
17
+ with open(requirements_file, encoding="utf-8") as f:
18
+ install_requires = f.read().splitlines()
19
+
20
+
21
+ # Read README.md
22
+ readme_file = base_dir / "README.md"
23
+ with open(readme_file, encoding="utf-8") as f:
24
+ long_description = f.read()
25
+
26
+
27
+ setup(
28
+ name="SpotDown",
29
+ version=version["__version__"],
30
+ author="Arrowar",
31
+ author_email="author@example.com",
32
+ description="A command-line program to download music",
33
+ long_description=long_description,
34
+ long_description_content_type="text/markdown",
35
+ url="https://github.com/Arrowar/spotdown",
36
+ packages=find_packages(),
37
+ include_package_data=True,
38
+ install_requires=install_requires,
39
+ entry_points={
40
+ "console_scripts": [
41
+ "spotdown=SpotDown.main:run",
42
+ ],
43
+ },
44
+ classifiers=[
45
+ "Programming Language :: Python :: 3",
46
+ "License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
47
+ "Operating System :: OS Independent",
48
+ ],
49
+ python_requires=">=3.8",
50
+ )
@@ -1,3 +0,0 @@
1
- include README.md
2
- include requirements.txt
3
- recursive-include SpotDown *.txt *.md *.json
File without changes
@@ -1,2 +0,0 @@
1
- [console_scripts]
2
- spotdown = SpotDown.main:main
spotdown-0.0.8/setup.py DELETED
@@ -1,46 +0,0 @@
1
- import os
2
- import re
3
- from setuptools import setup, find_packages
4
-
5
- def read_readme():
6
- with open("README.md", "r", encoding="utf-8") as fh:
7
- return fh.read()
8
-
9
- with open(os.path.join(os.path.dirname(__file__), "requirements.txt"), "r", encoding="utf-8-sig") as f:
10
- required_packages = f.read().splitlines()
11
-
12
- def get_version():
13
- try:
14
- import pkg_resources
15
- return pkg_resources.get_distribution('SpotDown').version
16
-
17
- except Exception:
18
- version_file_path = os.path.join(os.path.dirname(__file__), "SpotDown", "upload", "version.py")
19
- with open(version_file_path, "r", encoding="utf-8") as f:
20
- version_match = re.search(r"^__version__\s*=\s*['\"]([^'\"]*)['\"]", f.read(), re.M)
21
- if version_match:
22
- return version_match.group(1)
23
-
24
-
25
- setup(
26
- name="SpotDown",
27
- version=get_version(),
28
- long_description=read_readme(),
29
- long_description_content_type="text/markdown",
30
- author="Arrowar",
31
- url="https://github.com/Arrowar/SpotDown",
32
- packages=find_packages(include=["SpotDown", "SpotDown.*"]),
33
- install_requires=required_packages,
34
- python_requires='>=3.8',
35
- entry_points={
36
- "console_scripts": [
37
- "spotdown=SpotDown.main:main",
38
- ],
39
- },
40
- include_package_data=True,
41
- keywords="streaming community",
42
- project_urls={
43
- "Bug Reports": "https://github.com/Arrowar/SpotDown/issues",
44
- "Source": "https://github.com/Arrowar/SpotDown",
45
- }
46
- )
File without changes
File without changes
File without changes
File without changes