An easy-to-use library that allows you to search and download audio from VK, bypassing the restriction on obtaining a token to use the VK audio API.
Project description
Search and download songs from VK easily with univk_audio
An easy-to-use library that allows you to search and download audio from VK, bypassing the restriction on obtaining a token to use the VK audio API.
Key features
- Doesn't require a VK Audio API token
- Login + password authorization
- Searching for songs without specific query rules
- Downloading songs
- Supports async
Requirements
Installation
pip install univk_audio
Getting started
Get authorization cookies
As class object:
# examples/auth_example.py
import asyncio
from univk_audio import AsyncVKAuth
# Example with class object, needs to close session manually
async def get_auth_cookies_example():
login: str = "79998887776"
password: str = "password"
# user_agent is optional:
user_agent: str = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36"
auth = AsyncVKAuth(login = login, password = password, user_agent = user_agent)
# .get_auth_cookies Returns a string with cookies
# path is optional, if specified - saves cookies in file
cookies = await auth.get_auth_cookies(path = "cookies.txt")
await auth.close()
print(cookies)
asyncio.run(get_auth_cookies_example())
Async with:
# examples/auth_with_example.py
import asyncio
from univk_audio import AsyncVKAuth
# Example with 'async with' construction, that closes session automatically
async def get_auth_cookies_with_example():
login: str = "79998887776"
password: str = "password"
# user_agent is optional:
user_agent: str = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36"
async with AsyncVKAuth(login = login, password = password, user_agent = user_agent) as auth:
# .get_auth_cookies Returns a string with cookies
# path is optional, if specified - saves cookies in file
cookies = await auth.get_auth_cookies(path = "cookies.txt")
print(cookies)
asyncio.run(get_auth_cookies_with_example())
Search for songs
As class object:
# examples/search_example.py
import asyncio
from univk_audio import AsyncVKMusic
# Example with class object, needs to close session manually
async def search_example():
cookies: str = "Your cookies from auth. See -> examples/auth_example.py"
# user_agent is optional:
user_agent: str = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36"
music = AsyncVKMusic(cookies = cookies, user_agent = user_agent)
# .search Returns a Dict[str, str]
# {"*song-title*": "*download-link*"}
search_results = await music.search(query = "Imagine Dragons - Bones")
await music.close()
for title, download_link in search_results.items():
print(f"{title}\n{download_link}\n" + "-" * 15)
asyncio.run(search_example())
Async with:
# examples/search_with_example.py
import asyncio
from univk_audio import AsyncVKMusic
# Example with 'async with' construction, that closes session automatically
async def search_with_example():
cookies: str = "Your cookies from auth. See -> auth_example.py"
# user_agent is optional:
user_agent: str = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36"
async with AsyncVKMusic(cookies = cookies, user_agent = user_agent) as music:
# .search Returns a Dict[str, str]
# {"*song-title*": "*download-link*"}
search_results = await music.search(query = "Imagine Dragons - Bones")
for title, download_link in search_results.items():
print(f"{title}\n{download_link}\n" + "-" * 15)
asyncio.run(search_with_example())
Search and download songs
General example of downloading songs from search results:
# examples/search_and_download_example.py
import asyncio
from univk_audio import AsyncVKMusic
# General example of downloading songs from search results
async def search_and_download_example():
cookies: str = "Your cookies from auth. See -> auth_example.py"
# user_agent is optional:
user_agent: str = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36"
async with AsyncVKMusic(cookies = cookies, user_agent = user_agent) as music:
# Returns a Dict[str, str]
# {"*song-title*": "*download-link*"}
search_results = await music.search(query = "Imagine Dragons - Bones")
for title, download_link in search_results.items():
print("Downloading...\n" + f"{title}\n{download_link}")
is_downloaded = await music.download(link = download_link, path = f"songs/{title}.mp3")
if is_downloaded:
print(f"File saved as {title}.mp3\n" + "-" * 15)
asyncio.run(search_and_download_example())
License
univk_audio is offered under MIT License.
Free copying and use is allowed.
Source code
https://github.com/Exponefrv1/univk_audio
Author
Discord: autumnale
Telegram: @AnemoneSong
- I don't ask for donations or something.
- Any questions, suggestions and crit are welcome.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file univk_audio-1.0.3.tar.gz.
File metadata
- Download URL: univk_audio-1.0.3.tar.gz
- Upload date:
- Size: 12.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d0c806c6b4005aeee6b49292ee6e552121a5dd92b38c9eb2d67211292bce8745
|
|
| MD5 |
18f1bc2fd7e31e0e5791070b88f81017
|
|
| BLAKE2b-256 |
1c35a3b5cb99cdf7c19cfdaf8c10998120108834f750279f62cdd92de2e94a0b
|
File details
Details for the file univk_audio-1.0.3-py3-none-any.whl.
File metadata
- Download URL: univk_audio-1.0.3-py3-none-any.whl
- Upload date:
- Size: 13.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
993459b108cd6a6d01c9ac2ac42fae859691304907fd5ef495798f3c6542b76b
|
|
| MD5 |
064db067f4b8d6a756bb7b52e0d37464
|
|
| BLAKE2b-256 |
20b4f1404016ecb0a4c75c9c331f7f62afbe0c8564bf51b1acb2c1fbf6b615b5
|