Загрузка...

Сливем музыку до официального релиза

Тема в разделе Статьи создана пользователем iouyw 5 янв 2025. 1084 просмотра

  1. iouyw
    iouyw Автор темы 5 янв 2025 Я не использую это поле, ведь его используют фейки 146 28 май 2021
    :smile_crazy: Поздравляю всех с наступившим 2025 годом! :smile_crazy:
    В честь этого я хочу поделиться с вами двумя способами сливов музыки, который работает по сей день
    Сейчас большинство сливов (90%) происходят с музыкальных площадок, из-за их уязвимостей, чаще всего, через их API. Сегодня поделюсь с вами двумя из них.​

    1. Nhaccuatui
    C помощью этого способа вы можете получать полные треки до официального выхода.
    Как отсюда сливать?

    1) Заходим на сам сервис и создаем аккаунт, также в него нужно авторизоваться на втором домене: тык
    2) Пишем в поиск интересующий вас релиз, чтобы узнать что будет выходить в ближайшее время, заходите в раздел: https://lolz.live/forums/862/, буду заливать туда релизы (пока что на 10 число почти ничего нет)


    3) Если вам выдался релиз, нажимаем на три точки -> go to song
    [IMG]


    4) Далее перед страницей на которую вы попадете пишите view-source:
    пример: view-source:https://beta.nhaccuatui.com/bai-hat/galore-asteria-ft-clonnex.bOBhR429rsqe.html
    Пишем в поиск songid и копируем его.


    5) Переходим на домен nhaccuatui.com и заходим в личный кабинет, в список плейлистов
    Нажимаем F12 и переходим в консоль, там пишем следующую команду NCTQuickSearchEditPlaylist.addSong(), в скобочках указываем
    скопированный songid, после чего сохраняем изменения


    6) Идем обратно на на другой хостинг, нажимаем F12 -> Network, заходим в созданный плейлист, включаем его, и вауля, в консоле появился mp3 невышедшего трека, а также информация о нем, где в том числе обложка в максимально возможном качестве:
    https://avatar-ex-swe.nixcdn.com/playlist/2024/12/27/c/7/e/0/1735315994167_3000.jpg

    Сам бы с текста ничего не понял, поэтому для вас записали видео-гайд:

    :pepe_wtf: : Почему я не могу найти нужный релиз?
    :pepeTalk: : Иногда площадка не пишет имя исполнителя, попробуй искать по названию трека, либо же он в целом сюда не загружен

    :pepe_wtf:: Как получить трек в 320kbps? (как на видео)
    :pepeTalk: : Нужно купить VIP подписку. Без подписки можно скачать в 120kbps

    :pepe_wtf:: Как купить подписку если у меня нету вьетнамской карты? (почему?)
    :pepeTalk:: Подписку можно купить через BitRefill или через мобильное приложение​

    2. Vodafone
    Эта площадка интереснее, сюда заливают больше лейблов, в том числе Universal Music (дахуя пиздатый американский лейбл). С помощью этого способа вы сможете получать отрывки (30сек) и информацию о невышедших релизах. (К сожалению, полные треки качать нельзя, это был пофикшено, но при этом здесь намного больше артистов, чем на способе выше)
    Как отсюда сливать?
    Для вас мы подготовили парсер, тк объяснить как это работает достаточно тяжело, да и руками вы явно не будете самостоятельно перебирать айдишники в апи.
    Вот он: https://mega.nz/file/KR8znLIS#0KYwsv_FnMTByxU4cKQnOgHJNzcAjnOPEoqFW1SKElQ


    Как он работает?
    Это бот для телеграма, вам нужно будет вставить токен бота, данный скрипт использует апи музыкального сервиса для получения информации о релизе и перебирает их айди.

    Что нужно для его использования?
    Для его использования необходимо установить следующие питон библиотеки:
    Код
    pip install aiohttp
    pip install mutagen
    pip install python-dotenv
    Также в директории с скриптом должны быть файлы:
    artists.txt - вайт лист артистов для того, чтобы бот не флудил вам в телеграм, его вы должны заполнить самостоятельно, добавить туда интересующих вас артистов, только результаты с ними будут стучать вам в тг
    parse.csv - файл для логирования полученных релизов


    Чтобы получить отрывок песни, айди релиза нужно подставить в эту ссылку:
    https://p.mondiamedia.com/api/fetch/preview/id
    (пример: https://p.mondiamedia.com/api/fetch/preview/131248361)

    Если сомневаетесь в надежности, то вот код, дополнительно необходимо создать файлы, которые я расписал выше:
    Python
    import os
    import aiohttp
    import asyncio
    from mutagen.mp3 import MP3
    from mutagen.easyid3 import EasyID3
    from io import BytesIO
    from dotenv import load_dotenv

    load_dotenv()

    API_TOKEN = os.getenv("API_TOKEN")
    CHAT_ID = os.getenv("CHAT_ID")
    ERROR_LIMIT = int(os.getenv("ERROR_LIMIT"))
    MIN_ID = int(os.getenv("MIN_ID"))
    MAX_ID = int(os.getenv("MAX_ID"))
    ERRORS = 0

    def credits():
    print(" ,-. _,---._ __ / \\")
    print(" / ) .-' `./ / \\")
    print("( ( ,' `/ /|")
    print(" \\ `-\" \\'\\ / |")
    print(" `. , \\ \\ / |")
    print(" /`. ,'-`----Y |")
    print(" ( ; | '")
    print(" | ,-. ,-' | /")
    print(" | | ( | hjw | /")
    print(" ) | \\ `.___________|/")
    print("[*] k1ttyf/mondia-parser: loaded!")
    print("[*] Creator: k1ttyf.xyz x @zvukleakZ\n")

    def load_artists():
    try:
    with open("artists.txt", "r", encoding="utf-8") as f:
    return [line.strip().lower() for line in f if line.strip()]
    except Exception as e:
    print(f"[load_artists]: {e}")
    return []

    def check_exists(artist, artists):
    artist = artist.lower()
    query_names = [name.strip() for name in artist.split(",")]
    return any(name in artists for name in query_names)

    async def isUnreleased(session, album_id):
    try:
    async with session.get("https://ment-backend.mondia.com/structure/pages_music_tracks_details?", params={"id": album_id}, headers={"x-tenant-id": "vf-de"}) as response:
    print(f"[isUnreleased] {album_id}: {response.status}")
    if response.status == 200:
    data = await response.json()
    statusCode = data["substructure"][0]["data"].get("errorCode")
    return statusCode is not None
    else:
    return None
    except Exception as e:
    print(f"[isUnreleased] {album_id}: {e}")
    return None

    async def fetch_mp3_metadata(session, album_id):
    try:
    async with session.get(f"https://p.mondiamedia.com/api/fetch/preview/{album_id}") as response:
    print(f"[fetch_mp3_metadata] {album_id}: {response.status}")
    if response.status == 200:
    data = await response.read()
    mp3_data = BytesIO(data)
    audio = MP3(mp3_data, ID3=EasyID3)
    return {
    "title": audio.get("title", [""])[0],
    "artist": audio.get("artist", [""])[0],
    "album": audio.get("album", [""])[0],
    }
    else:
    return None
    except Exception as e:
    print(f"[fetch_mp3_metadata] {album_id}: {e}")
    return None

    async def send_message(chat_id, text):
    telegram_url = f"https://api.telegram.org/bot{API_TOKEN}/sendMessage"
    payload = {
    "chat_id": chat_id,
    "text": text,
    "parse_mode": "HTML"
    }
    try:
    async with aiohttp.ClientSession() as session:
    async with session.post(telegram_url, json=payload) as response:
    if response.status == 200:
    return True
    print(f"[send_message] {chat_id}: {response.status}")
    return False
    except Exception as e:
    print(f"[send_message] {chat_id}: {e}")
    return False

    async def process_ids(start_id, end_id, log, batch_size=50, artists=None):
    global ERRORS

    if artists is None:
    artists = []

    async with aiohttp.ClientSession(timeout=aiohttp.ClientTimeout(total=10)) as session:
    for i in range(start_id, end_id, batch_size):
    tasks = [
    fetch_mp3_metadata(session, album_id)
    for album_id in range(i, min(i + batch_size, end_id))
    ]
    results = await asyncio.gather(*tasks)
    for result, album_id in zip(results, range(i, min(i + batch_size, end_id))):
    if ERRORS >= ERROR_LIMIT:
    await send_message(CHAT_ID, f"<b>⚠ Получено больше {ERROR_LIMIT} ошибок!</b>")
    return None

    if result:
    ERRORS = 0
    title = result.get("title", "")
    artist = result.get("artist", "")
    album = result.get("album", "")

    log.write(f"{album_id};{artist};{title};{album}\n")
    if check_exists(artist, artists) and await isUnreleased(session, album_id):
    message_text = (
    f"<b> ID:</b> <code>{album_id}</code>\n"
    f"<b> Трек:</b> <code>{title}</code>\n"
    f"<b> Артист:</b> <code>{artist}</code>\n"
    f"<b> Альбом:</b> <code>{album}</code>"
    )
    await send_message(CHAT_ID, message_text)
    else:
    ERRORS += 1

    async def main():
    credits()
    log = open("parse.csv", "a")
    artists = load_artists()
    await process_ids(MIN_ID, MAX_ID, log, artists=artists)
    log.close()

    if __name__ == "__main__":
    asyncio.run(main())

    Спасибо за прочтение, теперь вы крутой хакер! (это вам не с эпл музыки за два часа сливать)
    Если вам интересно - могу поделиться тем, как это можно монетизировать :takeMyMoney:
    Если остались вопросы - задавайте здесь, или в телеграме - t.me/q9663
     
    Этот материал оказался полезным?
    Вы можете отблагодарить автора темы путем перевода средств на баланс
    Отблагодарить автора
  2. SUFA
    SUFA 5 янв 2025 13 507 27 окт 2022
    Годно,но сложно, сделай бота в ТГ,что бы люди просто могли ввести название артиста,а в ответ приходит трек :stonks_up:
     
    1. iouyw Автор темы
      SUFA, тяжело в реализации, посмотрю на отклик, если будет, сделаем
  3. Ximono
    Ximono 5 янв 2025 продам рекламу в профиле | обнулён+всёруками:ehh: | Р2Р грн 1461 16 мар 2021
    мп3 в 120kbps это боль :thomas:
     
    1. iouyw Автор темы
      Ximono, до релиза пойдет
  4. Manuzleek
    Manuzleek 5 янв 2025 Make Lolzteam great again... 15 378 20 ноя 2021
    Да нахуй оно надо, сидеть слушать какой-то индусский рэп
     
    1. Посмотреть предыдущие комментарии (1)
    2. Manuzleek
      iouyw, второй сайт ещё ладно, но первый это совсем пиздец
    3. iouyw Автор темы
      Manuzleek, посмотри видос, на нем слив русского релиза
    4. Manuzleek
      iouyw, тогда извиняюсь, зря быканул :donate:
  5. wokeup
    wokeup 10 янв 2025 Отработка невалидных баз - https://lolz.live/threads/8152283/ 5048 27 июн 2024
    щас бы сливать с плошадок, такие сливы нахуй никому не нужны)
     
    1. iouyw Автор темы
      wokeup, экспертное мнение :colobok_crazy:
Top
Загрузка...