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
univk_audio-1.0.3.tar.gz
(12.0 kB
view details)
Built Distribution
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 |