Лидеры
-
Oleg Aprel
Генсек28Баллы1 512Постов -
BJHorner
Делегаты6Баллы1Постов -
aJleXaHDeR
Делегаты2Баллы1Постов -
Скорбная Лиса
Aprel Team2Баллы76Постов
Прославленный контент
Показан контент с высокой репутацией за 15.09.2025 в Телеграммы
-
ЯМяу
6 балловА можно пожалуйста потратить немного времени вместо бесконечных апдейтов кривого спота и уделить время ЯМяу?6 баллов
-
Скрипт для выполнения заданий в Discord не скачивая игры | Discord Orbs
Проверено на Arch Linux, Manjaro KDE, а также на Garuda KGE Gaming. Официальное приложение Discord Desktop. 1. Если вы из РФ, то включите любой ОВЕ для обхода. Можете использовать наш сервер: https://discord.aprelteam.by. 2. Примите квест в разделе «Задания». 3. Нажмите Ctrl+Shift+I, чтобы открыть Инструменты разработчика (в приложении Discord). Если не работает, то: На Windows: откройте проводник и введите %appdata%/discord/settings.json. На Linux: файл находится по пути ~/.config/discord/settings.json. Добавьте следующую строку в JSON (не забудьте вставить запятую в конце предыдущей строки, если это необходимо): "DANGEROUS_ENABLE_DEVTOOLS_ONLY_ENABLE_IF_YOU_KNOW_WHAT_YOURE_DOING": true Закройте Discord (используйте "Выйти" из трея, чтобы полностью его закрыть). Сохраните изменения в файле и снова запустите Discord. 4. Перейдите на вкладку Консоль (Console). 5. Скопируйте код ниже и вставьте туда же: console.warn("%c[ВНИМАНИЕ]", "color: red; font-weight: bold; font-size: 16px;", "Вы запускаете скрипт от Aprel Team."); console.warn("Это может привести к блокировке вашего аккаунта. Используйте на свой страх и риск."); console.warn("Скрипт может перестать работать при обновлении Discord."); console.warn("----------------------------------------"); const ENCODED_KEY = "QXByZWwgVGVhbQ=="; async function verifyLocalProtection() { console.log("%c[Aprel Team]", "color: #00ff00; font-weight: bold;", "Инициализация системы защиты..."); await new Promise(resolve => setTimeout(resolve, 800)); console.log("%c[Aprel Team]", "color: #00ff00; font-weight: bold;", "Проверка целостности кода..."); await new Promise(resolve => setTimeout(resolve, 600)); console.log("%c[Aprel Team]", "color: #00ff00; font-weight: bold;", "Дешифровка внутреннего ключа..."); try { const decodedKey = atob(ENCODED_KEY); await new Promise(resolve => setTimeout(resolve, 500)); console.log("%c[Aprel Team]", "color: #00ff00; font-weight: bold;", "Сравнение ключей..."); if (decodedKey === "Aprel Team") { console.log("%c[Aprel Team]", "color: #00ff00; font-weight: bold;", "✓ Ключ APRELTEAM подтверждён"); console.log("%c[Aprel Team]", "color: #00ff00; font-weight: bold;", "✓ Целостность кода не нарушена"); console.log("%c[Aprel Team]", "color: #00ff00; font-weight: bold;", "✓ Доступ разрешён"); console.log("%c[Aprel Team]", "color: #00ff00; font-weight: bold;", "=== Aprel Team System Ready ==="); return true; } else { console.error("%c[Aprel Team]", "color: red; font-weight: bold;", "✗ Ошибка: ключ не совпадает"); console.error("%c[Aprel Team]", "color: red; font-weight: bold;", "✗ Оригинальный код ищите у Aprel Team"); console.error("%c[Aprel Team]", "color: red; font-weight: bold;", "✗ В коде изменено слово 'Aprel Team'"); console.error("%c[Aprel Team]", "color: red; font-weight: bold;", "✗ Base64 проверка не пройдена"); return false; } } catch (e) { console.error("%c[Aprel Team]", "color: red; font-weight: bold;", "✗ Ошибка дешифровки:", e.message); console.error("%c[Aprel Team]", "color: red; font-weight: bold;", "✗ Оригинальный код ищите у Aprel Team"); console.error("%c[Aprel Team]", "color: red; font-weight: bold;", "✗ В коде нарушена структура"); return false; } } delete window.$; let wpRequire = webpackChunkdiscord_app.push([[Symbol()], {}, r => r]); webpackChunkdiscord_app.pop(); let ApplicationStreamingStore = Object.values(wpRequire.c).find(x => x?.exports?.A?.__proto__?.getStreamerActiveStreamMetadata)?.exports?.A; let RunningGameStore = Object.values(wpRequire.c).find(x => x?.exports?.Ay?.getRunningGames)?.exports?.Ay; let QuestsStore = Object.values(wpRequire.c).find(x => x?.exports?.A?.__proto__?.getQuest)?.exports?.A; let ChannelStore = Object.values(wpRequire.c).find(x => x?.exports?.A?.__proto__?.getAllThreadsForParent)?.exports?.A; let GuildChannelStore = Object.values(wpRequire.c).find(x => x?.exports?.Ay?.getSFWDefaultChannel)?.exports?.Ay; let FluxDispatcher = Object.values(wpRequire.c).find(x => x?.exports?.h?.__proto__?.flushWaitQueue)?.exports?.h; let api = Object.values(wpRequire.c).find(x => x?.exports?.Bo?.get)?.exports?.Bo; if (!ApplicationStreamingStore || !RunningGameStore || !QuestsStore || !ChannelStore || !GuildChannelStore || !FluxDispatcher || !api) { console.error("%c[ОШИБКА]", "color: red; font-weight: bold;", "Не удалось найти необходимые модули Discord. Возможно, версия клиента изменилась."); console.log("%c[Aprel Team]", "color: #00ff00; font-weight: bold;", "Скрипт от Aprel Team"); throw new Error("Модули не найдены"); } const supportedTasks = ["WATCH_VIDEO", "PLAY_ON_DESKTOP", "STREAM_ON_DESKTOP", "PLAY_ACTIVITY", "WATCH_VIDEO_ON_MOBILE"]; let quests = [...QuestsStore.quests.values()].filter(x => x.userStatus?.enrolledAt && !x.userStatus?.completedAt && new Date(x.config.expiresAt).getTime() > Date.now() && supportedTasks.find(y => Object.keys((x.config.taskConfig ?? x.config.taskConfigV2).tasks).includes(y)) ); let isApp = typeof DiscordNative !== "undefined"; if (quests.length === 0) { console.log("%c[Инфо]", "color: cyan;", "У вас нет незавершённых квестов!"); console.log("%c[Aprel Team]", "color: #00ff00; font-weight: bold;", "Скрипт от Aprel Team"); } else { console.log(`%c[Инфо] Найдено квестов: ${quests.length}`, "color: cyan;"); console.log("%c[Aprel Team]", "color: #00ff00; font-weight: bold;", "Скрипт от Aprel Team"); const randomDelay = (minMs, maxMs) => new Promise(resolve => setTimeout(resolve, Math.floor(Math.random() * (maxMs - minMs + 1)) + minMs)); let completedCount = 0; const COOLDOWN_AFTER = 4; let doJob = async function() { const quest = quests.pop(); if (!quest) { console.log("%c[Готово]", "color: green;", "Все квесты обработаны!"); console.log("%c[Aprel Team]", "color: #00ff00; font-weight: bold;", "Aprel Team - Завершено"); return; } const pid = Math.floor(Math.random() * 30000) + 1000; const applicationId = quest.config.application?.id ?? (() => { const tc = quest.config.taskConfig ?? quest.config.taskConfigV2; const tn = supportedTasks.find(x => tc.tasks[x] != null); return tc.tasks[tn]?.applications?.[0]?.id; })(); const applicationName = quest.config.application?.name ?? "Unknown"; const questName = quest.config.messages.questName; const taskConfig = quest.config.taskConfig ?? quest.config.taskConfigV2; const taskName = supportedTasks.find(x => taskConfig.tasks[x] != null); const taskData = taskConfig.tasks[taskName]; const secondsNeeded = taskData.target; let secondsDone = quest.userStatus?.progress?.[taskName]?.value ?? 0; console.log(`%c[Старт] Квест: ${questName} (${taskName})`, "color: yellow; font-weight: bold;"); console.log(`%c[Старт] Требуется времени: ${secondsNeeded} сек., уже пройдено: ${secondsDone} сек.`, "color: gray;"); console.log("%c[Aprel Team]", "color: #00ff00; font-weight: bold;", `Задача #${completedCount + 1} от Aprel Team`); if (taskName === "WATCH_VIDEO" || taskName === "WATCH_VIDEO_ON_MOBILE") { const speed = 7; const enrolledAt = new Date(quest.userStatus.enrolledAt).getTime(); let completed = false; console.log(`%c[Видео] Имитация просмотра видео для "${questName}".`, "color: magenta;"); console.log("%c[Aprel Team]", "color: #00ff00; font-weight: bold;", "Video module active - Aprel Team"); let fn = async () => { while(true) { const remaining = Math.min(speed, secondsNeeded - secondsDone); await randomDelay(100, 500); await new Promise(resolve => setTimeout(resolve, remaining * 1000)); const timestamp = secondsDone + speed; try { const res = await api.post({url: `/quests/${quest.id}/video-progress`, body: {timestamp: Math.min(secondsNeeded, timestamp + Math.random())}}); completed = res.body.completed_at != null; secondsDone = Math.min(secondsNeeded, timestamp); if (timestamp >= secondsNeeded) { break; } await randomDelay(2000, 5000); } catch (e) { console.error("Ошибка при отправке прогресса видео:", e); break; } } if (!completed) { try { await api.post({url: `/quests/${quest.id}/video-progress`, body: {timestamp: secondsNeeded}}); } catch (e) { console.error("Ошибка финализации видео:", e); } } console.log("%c[Готово] Квест завершён!", "color: green; font-weight: bold;"); console.log("%c[Aprel Team]", "color: #00ff00; font-weight: bold;", "Video completed - APRELTEAM verified"); completedCount++; if (completedCount % COOLDOWN_AFTER === 0) { console.log("%c[Aprel Team]", "color: yellow; font-weight: bold;", `Выполнено ${COOLDOWN_AFTER} заданий. Пауза 1 минута...`); await new Promise(resolve => setTimeout(resolve, 60000)); console.log("%c[Aprel Team]", "color: #00ff00; font-weight: bold;", "Пауза завершена. Продолжаем..."); } await randomDelay(3000, 8000); doJob(); } fn(); } else if (taskName === "PLAY_ON_DESKTOP") { if (!isApp) { console.log("%c[Ошибка]", "color: red;", "Это больше не работает в браузере для не-видео квестов! Используйте десктопное приложение Discord для выполнения квеста", questName); console.log("%c[Aprel Team]", "color: #00ff00; font-weight: bold;", "Browser not supported - Aprel Team"); doJob(); } else { try { const res = await api.get({url: `/applications/public?application_ids=${applicationId}`}); const appData = res.body[0]; const exeName = appData.executables?.find(x => x.os === "win32")?.name?.replace(">","") ?? appData.name.replace(/[\/\\:*?"<>|]/g, ""); const fakeGame = { cmdLine: `C:\\Program Files\\${appData.name}\\${exeName}`, exeName, exePath: `c:/program files/${appData.name.toLowerCase()}/${exeName}`, hidden: false, isLauncher: false, id: applicationId, name: appData.name, pid: pid, pidPath: [pid], processName: appData.name, start: Date.now(), }; const realGames = RunningGameStore.getRunningGames(); const fakeGames = [fakeGame]; const realGetRunningGames = RunningGameStore.getRunningGames; const realGetGameForPID = RunningGameStore.getGameForPID; RunningGameStore.getRunningGames = () => fakeGames; RunningGameStore.getGameForPID = (pid) => fakeGames.find(x => x.pid === pid); FluxDispatcher.dispatch({type: "RUNNING_GAMES_CHANGE", removed: realGames, added: [fakeGame], games: fakeGames}); console.log(`%c[Игра] Подделка игры "${appData.name}". Ждите ${Math.ceil((secondsNeeded - secondsDone) / 60)} минут.`, "color: cyan;"); console.log("%c[Aprel Team]", "color: #00ff00; font-weight: bold;", "Game spoofing - Aprel Team active"); let fn = data => { let progress = quest.config.configVersion === 1 ? data.userStatus.streamProgressSeconds : Math.floor(data.userStatus.progress.PLAY_ON_DESKTOP.value); console.log(`%c[Прогресс] Прогресс квеста: ${progress}/${secondsNeeded}`, "color: gray;"); if (progress >= secondsNeeded) { console.log("%c[Готово] Квест завершён!", "color: green; font-weight: bold;"); console.log("%c[Aprel Team]", "color: #00ff00; font-weight: bold;", "Game completed - APRELTEAM verified"); completedCount++; if (completedCount % COOLDOWN_AFTER === 0) { console.log("%c[Aprel Team]", "color: yellow; font-weight: bold;", `Выполнено ${COOLDOWN_AFTER} заданий. Пауза 1 минута...`); setTimeout(() => { console.log("%c[Aprel Team]", "color: #00ff00; font-weight: bold;", "Пауза завершена. Продолжаем..."); RunningGameStore.getRunningGames = realGetRunningGames; RunningGameStore.getGameForPID = realGetGameForPID; FluxDispatcher.dispatch({type: "RUNNING_GAMES_CHANGE", removed: [fakeGame], added: [], games: []}); FluxDispatcher.unsubscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn); doJob(); }, 60000); } else { RunningGameStore.getRunningGames = realGetRunningGames; RunningGameStore.getGameForPID = realGetGameForPID; FluxDispatcher.dispatch({type: "RUNNING_GAMES_CHANGE", removed: [fakeGame], added: [], games: []}); FluxDispatcher.unsubscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn); setTimeout(doJob, 5000); } } }; FluxDispatcher.subscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn); } catch (e) { console.error("Ошибка при подделке игры:", e); doJob(); } } } else if (taskName === "STREAM_ON_DESKTOP") { if (!isApp) { console.log("%c[Ошибка]", "color: red;", "Это больше не работает в браузере для не-видео квестов! Используйте десктопное приложение Discord для выполнения квеста", questName); console.log("%c[Aprel Team]", "color: #00ff00; font-weight: bold;", "Browser not supported - Aprel Team"); doJob(); } else { let realFunc = ApplicationStreamingStore.getStreamerActiveStreamMetadata; ApplicationStreamingStore.getStreamerActiveStreamMetadata = () => ({ id: applicationId, pid, sourceName: null }); console.log(`%c[Стрим] Подделка стрима "${applicationName}". Стримьте любое окно в голосовом канале ${Math.ceil((secondsNeeded - secondsDone) / 60)} минут.`, "color: cyan;"); console.log("%c[Важно]", "color: orange;", "Помните: в голосовом канале должен быть хотя бы 1 другой человек!"); console.log("%c[Aprel Team]", "color: #00ff00; font-weight: bold;", "Stream mode - Aprel Team active"); let fn = data => { let progress = quest.config.configVersion === 1 ? data.userStatus.streamProgressSeconds : Math.floor(data.userStatus.progress.STREAM_ON_DESKTOP.value); console.log(`%c[Прогресс] Прогресс квеста: ${progress}/${secondsNeeded}`, "color: gray;"); if (progress >= secondsNeeded) { console.log("%c[Готово] Квест завершён!", "color: green; font-weight: bold;"); console.log("%c[Aprel Team]", "color: #00ff00; font-weight: bold;", "Stream completed - APRELTEAM verified"); completedCount++; if (completedCount % COOLDOWN_AFTER === 0) { console.log("%c[Aprel Team]", "color: yellow; font-weight: bold;", `Выполнено ${COOLDOWN_AFTER} заданий. Пауза 1 минута...`); setTimeout(() => { console.log("%c[Aprel Team]", "color: #00ff00; font-weight: bold;", "Пауза завершена. Продолжаем..."); ApplicationStreamingStore.getStreamerActiveStreamMetadata = realFunc; FluxDispatcher.unsubscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn); doJob(); }, 60000); } else { ApplicationStreamingStore.getStreamerActiveStreamMetadata = realFunc; FluxDispatcher.unsubscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn); setTimeout(doJob, 5000); } } }; FluxDispatcher.subscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn); } } else if (taskName === "PLAY_ACTIVITY") { const channelId = ChannelStore.getSortedPrivateChannels()[0]?.id ?? Object.values(GuildChannelStore.getAllGuilds()).find(x => x != null && x.VOCAL.length > 0)?.VOCAL[0]?.channel.id; if (!channelId) { console.error("%c[Ошибка]", "color: red;", "Не удалось найти канал для активности. Создайте личный канал или присоединитесь к голосовому."); console.log("%c[Aprel Team]", "color: #00ff00; font-weight: bold;", "Activity error - Aprel Team"); doJob(); return; } const streamKey = `call:${channelId}:1`; console.log(`%c[Активность] Выполнение квеста "${questName}" - ${quest.config.messages.questName}`, "color: magenta;"); console.log("%c[Aprel Team]", "color: #00ff00; font-weight: bold;", "Activity task - Aprel Team active"); let fn = async () => { while(true) { try { const res = await api.post({url: `/quests/${quest.id}/heartbeat`, body: {stream_key: streamKey, terminal: false}}); const progress = res.body.progress.PLAY_ACTIVITY.value; console.log(`%c[Прогресс] Прогресс квеста: ${progress}/${secondsNeeded}`, "color: gray;"); await randomDelay(18000, 22000); if (progress >= secondsNeeded) { await api.post({url: `/quests/${quest.id}/heartbeat`, body: {stream_key: streamKey, terminal: true}}); break; } } catch (e) { console.error("Ошибка при обновлении активности:", e); break; } } console.log("%c[Готово] Квест завершён!", "color: green; font-weight: bold;"); console.log("%c[Aprel Team]", "color: #00ff00; font-weight: bold;", "Activity completed - APRELTEAM verified"); completedCount++; if (completedCount % COOLDOWN_AFTER === 0) { console.log("%c[Aprel Team]", "color: yellow; font-weight: bold;", `Выполнено ${COOLDOWN_AFTER} заданий. Пауза 1 минута...`); await new Promise(resolve => setTimeout(resolve, 60000)); console.log("%c[Aprel Team]", "color: #00ff00; font-weight: bold;", "Пауза завершена. Продолжаем..."); } await randomDelay(3000, 8000); doJob(); }; fn(); } }; verifyLocalProtection().then(async (verified) => { if (verified) { doJob(); } else { console.error("%c[Aprel Team]", "color: red; font-weight: bold;", "=== Доступ запрещён ==="); console.error("%c[Aprel Team]", "color: red; font-weight: bold;", "=== Оригинальный код ищите у Aprel Team ==="); console.error("%c[Aprel Team]", "color: red; font-weight: bold;", "=== В коде изменено слово 'Aprel Team' ==="); } }); }6. Если не вставляется код, то впишите в консоль allow pasting. 7. Теперь вы можете забрать награду в «Заданиях».5 баллов
-
ЯМяу
3 баллаНет, я клал на моддинг в целом. И не раз пояснял что это хобби. Когда подгоняют, я обычно открываю PUBG или включаю сериал.3 балла
-
Темы для Element Desktop
2 баллаАктивируем инструменты разработчика. Для этого в комнате прописываем и отправляем команду /devtools. Помимо этого лучше отключить новый вид и вернуть старый. Убрать галочку с пункта нового списка комнат. И прописываем ссылку на тему. Обычно они в формате .json. Их можно публиковать прямыми ссылками в сети. GitHub, GitLab. Создать их достаточно просто. Ниже готовый пример на основе нашего форума. https://raw.githubusercontent.com/aprelteam/matrix/refs/heads/main/element-desktop/aprelforum.json { "name": "Aprel Forum", "is_dark": true, "colors": { "accent-color": "#b58900", "primary-color": "#268bd2", "warning-color": "#dc322f", "sidebar-color": "#002b36", "roomlist-background-color": "#073642", "roomlist-text-color": "#839496", "roomlist-text-secondary-color": "#93a1a1", "roomlist-highlights-color": "#586e75", "timeline-background-color": "#002b36", "timeline-text-color": "#839496", "secondary-content": "#839496", "tertiary-content": "#839496", "timeline-text-secondary-color": "#586e75", "timeline-highlights-color": "#073642", "reaction-row-button-selected-bg-color": "#268bd2" } } Расшифровка: - "name": "Aprel Forum": Название - "is_dark": true: Указывает, что интерфейс будет с тёмной темой. - "colors": Цветовые настройки интерфейса. Ниже всё то, что связано с раскраской: - "accent-color": "#b58900": Дополнительный цвет акцента. - "primary-color": "#268bd2": Основной цвет интерфейса. - "warning-color": "#dc322f": Цвет, используемый для предупреждений. - "sidebar-color": "#002b36": Цвет боковой панели. - "roomlist-background-color": "#073642": Цвет фона списка комнат. - "roomlist-text-color": "#839496": Цвет текста в списке комнат. - "roomlist-text-secondary-color": "#93a1a1": Цвет вторичного текста в списке комнат. - "roomlist-highlights-color": "#586e75": Цвет для выделенных элементов в списке комнат. - "timeline-background-color": "#002b36": Цвет фона временной линии. - "timeline-text-color": "#839496": Цвет текста на временной линии. - "secondary-content": "#839496": Цвет вторичного контента. - "tertiary-content": "#839496": Цвет третичного контента. - "timeline-text-secondary-color": "#586e75": Цвет вторичного текста на временной линии. - "timeline-highlights-color": "#073642": Цвет выделенных элементов на временной линии. - "reaction-row-button-selected-bg-color": "#268bd2": Цвет фона кнопки реакций при выборе.2 балла
-
Клуб Mod APK
1 баллРазличные моды Android-приложений. Модули для них и многое другое. Это не стол заказов, а обсуждение моддинга, инструкции, помощь, патчинг и прочее.1 балл
-
TurboTel Pro
1 баллTurboTel Pro TurboTel Pro — альтернативный клиент Telegram. Много дополнительных фишек (скрытие чатов, скрытие аккаунтов, изменение шрифта, настройка внешнего вида под стиль iOS). Есть режим призрака (нечиталка, неписалка, скрытие онлайна), возможность читать удалённые сообщения, а также отслеживать действия контактов (смена номера, фото и т.д.). Модификация предоставляет все возможности для любителей по настоящему правильных клиентов. Получена локальная подписка Telegram Premium. Доступно чтение удалённых сообщений. Открыта возможность скачивать любой контент и снимать скриншоты в каналах и чатах где есть запрет на копирование, анонимно просматривать истории и многое другое. Сводка Добавил Oleg Aprel Добавлено 26.02.2026 Категория Программы Канал в Telegram Чат в Telegram Просмотр файла1 балл
-
Telegram Premium
1 баллTelegram Premium Telegram Premium — мод на официальный клиент Telegram Direct с официального сайта Telegram. Предоставляет все возможности для любителей по настоящему правильных клиентов. Получена локальная подписка Telegram Premium. Открыта возможность скачивать любой контент и снимать скриншоты в каналах и чатах где есть запрет на копирование. Анонимный просмотр историй и многое другое. Установится рядом с оригинальным Telegram, Telegram Direct или рядом с любым другим клиентом. Сводка Добавил Oleg Aprel Добавлено 06.03.2026 Категория Программы Просмотр файла1 балл
-
Povestochka Fly
1 баллPovestochka Fly — альтернативный клиент для MAX на Dart, использующий официальный веб-сокет, форк Komet. Поддержка чатов, каналов. Без трекеров. Помимо этого предоставляет все возможности для любителей по-настоящему правильных клиентов. Доступно чтение удалённых сообщений, нечиталки, режим призрака, кастомизация и многое другое. Это форк, который отличается от оригинала лишь некоторыми деталями. Постепенно в него будут добавляться новые функции, но активной разработки не планируется. Если вы используете iOS или macOS, этот проект вам не подойдёт. Я принципиально данные платформы поддерживать не планирую. Для iOS и macOS лучше использовать оригинальный Komet. Сайт Komet скопирован, но будет переписан с 0, чтобы не ругались.1 балл
-
Spotishka
1 баллАктуальная версия Spotishka: 9.1.14.864 Последнее обновление: 14.01.2026 Спотишка </> Spotishka — изменённая версия Spotify, в которой сняты практически все ограничения приложения (выбор любых песен и альбомов, переключение треков, случайный выбор, FWD / BWD, Spotify Connect), отключено принудительное перемешивание треков, помимо этого удалена реклама, аналитика и не только. Спотифай </> Spotify — цифровой музыкальный сервис, с помощью которого можно получить доступ к миллионам треков. Ответы на вопросы: Инструкция по разблокировке аккаунта. Как выглядит блокировка. Электронной почты не существует при восстановлении, а при создании пишет что она занята. Ошибка, не входит в аккаунт, нет музыки, нет альбомов (Что-то пошло не так) | Граждане РФ | Россия «Это функция Spotify Premium» на выпусках после 1 марта 2025 года Не входит в аккаунт, данные неверные при вводе правильных Spotify бесконечно пропускает треки при нажатии на плей После установки внизу 4 иконки. Premium не работает Автоперемешивание треков в любимых Spotify вылетает при запуске Короткие треки в Spotify Что такое ОВЕ? Загрузить Spotishka Mystery v9.1.14.864 https://soft.aprelteam.su Прошлые версии Spotishka Mystery v9.1.12.226 Spotishka v9.1.6.1145 Spotishka v9.0.82.1032 Spotishka v9.0.76.1126 Spotishka v9.0.72.967 Spotify Premium v9.0.72.967 Spotify Mystery v9.0.74.1121 Spotishka v9.0.66.655 Spotify Premium v9.0.66.655 Spotishka v9.0.64.608 Spotify Premium v9.0.64.608 Spotishka v9.0.60.614 Spotify Premium v9.0.60.614 Spotishka v9.0.54.518 Spotify Premium v9.0.54.518 Spotishka v9.0.54.509 Spotify Premium v9.0.54.509 Spotishka v9.0.52.505 Spotify Premium v9.0.52.505 Spotishka v9.0.50.416 Spotify Premium v9.0.50.416 Spotishka v9.0.48.380 Spotify Premium v9.0.48.380 Spotishka v9.0.46.496 Spotify Premium v9.0.46.496 Spotishka v9.0.44.478 Spotify Premium v9.0.44.478 Spotishka v9.0.42.529 Spotify Premium v9.0.42.529 Spotify Premium v9.0.40.4 Spotify Premium v9.0.38.129 Spotify Premium v9.0.34.105 Spotify Premium v9.0.34.4 Spotify Premium v9.0.32.468 Spotify Premium v9.0.32.272 Spotify Premium v9.0.30.999 Spotify Premium v9.0.30.242 Spotify Premium v9.0.28.246 (v1 + v2) Spotify Premium v9.0.28.4 Spotify Premium v9.0.26.468 (новая подпись) Spotify Premium v9.0.26.468 Spotify Premium v9.0.20.604 Spotify Premium v9.0.14.561 Spotify Premium v8.9.98.488 (с текстами и итогами года) Spotify Premium v8.9.98.488 (с повтором одного трека) Spotify Premium v8.9.26.592 Spotify Premium v8.9.24.633 Spotify Premium v8.8.96.364 Spotify Premium v8.8.78.587 Spotify Premium v8.8.52.4581 балл
-
Жалобы на участников и администрацию чатов Aprel Team
Поэтому у тебя нет доказательств и ты выдумало это из головы, это тот самый некомпетентный админ который еще и ненормативную лексику использует, а че не блокируешь уже тут сразу то, игнорируя все факты и отсутствие у тебя доказательств абсолютное, скинь пруфы сюда где я скидывал что в чат, и в чат админ состава в тг скинь тоже пруфы. Так же фиксируем подмену понятий, не было упоминания матери в непристойной форме, есть только интерпретация некомпетентного непонятно кого, кстати на скриншоте видно что админ ссылается на кумовство, что того человека знают, значит если он пожаловался без доказательств только с выдумками его можно блокировать, а то что тот захар систематически нарушает правила чата, и не 1, будем полностью игнорировать, дырочка так же является интерпретацией и подменой понятий. Подмени понятия сюда еще: твоя мать очень хороша, проверяй. Так же в лс я написал без единого оскорбления. И уже после блокировки без причины везде, а этот некомпетентный администратор пытается выдать это как причину блокировки. Буквально все ее "аргументы" это подмена понятий, оскорбления, и выдумки, тотальная клевета, у нее не будет доказательств ни по 1 своей выдумке, или выдумке того кого защищают прикрываясь тем что его знают и закрывая глаза на нарушения, которые как раз совершил он, а я не совершал. Так это это лживое и некомпетентное незнамо кто пытается давить на чувства, при этом ссылаясь на ложь, очевидно почему так происходит, потому что нет ни 1 доказательства нарушения мной правил чата для блокировки везде.1 балл
-
Aprel FM
1 баллРасширение Aprel FM опубликовано и обновлено в магазине расширений Firefox! https://addons.mozilla.org/ru/firefox/addon/aprelfm1 балл
-
Xiaomi 13 series и прикол с китайской версией
Я недавно купил китайский xiaomi 13 pro (nuwa). Кто читает чат хоть раз в месяц это знает, и я решил узнать как разблокировать загрузчик на этом чуде. Лучше бы не знал бы, сяоми как контора не особо хороших мечелись к тошибе и самсунгу за памятью типа ufs 4.0, и у версии сяоми с тошибой есть проблемы как раз с разблокировкой загрузчика в китае и на глобале. И за их альт разметки на kioxia/toshiba и другой защиты anti rollback которая не дает даже авторизованому сервис аккаунту что либо делать с ним через едл. Я спрашивал у 3 человек которые занимаются анлоком сяоми китайских, 1 сказал что если так залезть на новой прошивке и попытаться анлокнуть его так то слетит разметка и плата фактически станет мусоркой и за того что восстановление разметки стоит в районе 16000 вечно деревянных рублей русских. Другие 2 человека услышав это комбинацию ответили что они не смогут разблокировать загрузчик на нем. А теперь к гайду как узнать что за память стоит у тебя на сяоми: Введите код *#*#284#*#* в наборщике номера. 2. Подождите примерно 2-3 минуты. 3. Как только появится уведомление «Отчет об ошибке готов», перейдите в файловый менеджер. 4. Перейдите в папку MIUI/debug_log в основном хранилище и распакуйте файл с именем «bugreport». 5. После распаковки прокрутите вниз и снова распакуйте файл с именем «bugreport». 6. После распаковки второго файла откройте файл с именем «dumpstate_board.txt». 7. Найдите «UFS Spec». Ответ на вашу проблему будет на строке ниже. (Открывать и работать желательно через MT manager) За гайд спасибо: @runtime777 (он кто сказал про эту проблему когда я к нему обращался) Kioxia/toshiba: проблемы и за анти роллбека Samsung and more: более добрая к работе через едл На этом все. Сяоми хуйня1 балл
-
Обновление для повесточки
1 балл
-
Скрипт для выполнения заданий в Discord не скачивая игры | Discord Orbs
Скрипт переписан и везде теперь указано слово Aprel Team. Причина: скрипт летает по сети прямо перед глазами у Discord. Сюда не зайдут. Не нужно постить скрипт ни на какие GitHub и GitLab. Это одинаково что с приложениями Spotify. Опубликовали туда и считайте что приложение, скрипт накроется в самое ближайшее время. Discord заблокирует получение наград, а может и аккаунт в целом. Новый скрипт просьба не публиковать на GitHub, безопаснее это сделать на GitVerse (Discord плевать на российские платформы и обнаружить что-то там можно только вручную, а не автоматически как это делает Spotify со всем API софтом на GitHub. Они уничтожили полностью всё и всех). В консоли всё описал. Лучше используйте софт или новейший скрипт. Мобильные задания выполняйте в первую очередь и исключительно через официальное приложение. Только потом беритесь за ПК. Правильную версию загружу в данную тему (форк софта с GitHub).1 балл
-
Бесконечный дублирующийся плэйлист
1 балл
-
Бесконечный дублирующийся плэйлист
@c4elovek, об ошибке в курсе. Плейлисты пока что могут отображаться плохо. Повторы и прочее. Бесконечный повторяющийся список. Всё исправлю. Используйте поиск, лайки пока что, плейлисты полные, проблемы только с отображением.1 балл
-
Bluecord
1 баллАктуальная версия Bluecord: 2.7.4 Последнее обновление: 29.01.2026 Bluecord — модификация Discord, которая предоставляет множество новых пользовательских функций/модов для смартфона, с пользовательским интерфейсом, позволяющим легко изменять настройки. Загрузить Bluecord v2.7.4 https://soft.aprelteam.su Прошлые версии1 балл
-
ЯМяу
1 балл@rawneko спасибо. так и сделал. ничем не хуже самого ямяу. всё что надо есть и даже больше. в ямяу я не мог слушать подкасты а тут могу.1 балл
-
ЯМяу
1 балл
-
ЯМяу
1 баллПолучил бан за использование старого версии Ямяу круто 2 бана в 2025г и 2026г Жду следующего года что бы мой аккаунт разблокировали Долго ждать обновление Яндекс замечает старые версии и блокирует Что то может меня подключить семейный подписки Яндекс плюс ТГ @tigor111 балл
-
Viber
1 баллНовая версия: 26.8.1.0 Дата выпуска: 12.12.2025 Новые корректировки Изменён номер сборки (после будущих обновлений можно будет переходить на данную версию без удаления новой). Скрыты обновления (всегда актуальная версия во всех магазинах приложений). Сняты ограничения на скриншоты и на запись экрана со всех разделов. Изменена подпись (обновления только здесь). Удалены ненужные кнопки (маркет и т.д.). Удалён логотип с главного экрана. Удалены библиотеки x86_64 и x86. Удалена реклама и аналитика. Загрузить MEGA v26.8.1.0 ☭ СберДиск v26.8.1.0 ☭ Яндекс Диск v26.8.1.0 ☭ Telegram v26.8.1.01 балл
-
ЯМяу
1 балл
-
Помогите освоиться
1 баллДобро пожаловать! Общую информацию можешь посмотреть тут Если что-то заинтересует и появятся вопросы, то можешь их задать на форуме в любую связанную с заинтересовавшим разделом тему, либо писать в чаты. Заранее советую ознакомиться с правилами чатов и правилами публикаций на форуме.1 балл
-
Boo
1 баллНовая версия: 1.13.100 Дата выпуска: 18.10.2025 Новые корректировки Обновление до актуальной версии. Старые корректировки Изменён номер сборки (после будущих обновлений можно будет переходить на данную версию без удаления новой). Скрыты обновления (всегда актуальная версия во всех магазинах приложений). Сняты ограничения на скриншоты и на запись экрана со всех разделов. Изменена подпись (обновления только здесь). Удалена реклама и аналитика. Загрузить MEGA v1.13.100 ☭ СберДиск v1.13.100 ☭ Яндекс Диск v1.13.100 ☭ Element </> Matrix v1.13.100 ☭ Matrix </> Discord v1.13.100 ☭ Telegram v1.13.1001 балл
-
iMe Premium
1 балл@Cryo Monarch, Premium универсальный, но он локальный. Эмодзи это серверная фича, проверка идёт через сервер Telegram. Без взлома сервера это не обойти. После активации Premium нужно выбрать другой источник перевода голосовых.1 балл
-
Обсуждение приложения Aprel Kino для Windows
Установила на Винду.Работает.Красота))) Спасибо!)1 балл
-
ЯМяу
1 баллПока что как альтернативу можно использовать Murglar. Крайне достойная замена. https://soft.aprelteam.su/android/142-murglar.html1 балл
-
Стол заказов Aprel Mods
1 балл1. Приложение 2. Яндекс Музыка мод на бесконечный плюс 3. Изменить имя пакета в моде с ru.yandex.music на com.spotify.music или com.apple.android.music1 балл
-
Скрипт для скачивания видео с YouTube на PHP
Вероятно, многие из пытавшихся реализовать скачивание видосов с ютуба уже натыкались на get_video_info. И, к большому сожалению, рабочим этот вариант не оказывался (на сегодняшний день). Поэтому в этой статье поделюсь одной из найденных альтернатив. Итак, создаём php-файл и сразу начинаем писать код. Добавим переменную $link, запишем в неё ссылку на любое видео с ютуба: <?php $link = 'https://www.youtube.com/watch?v=x4sWD5qiZT4'; GET-параметр v - это идентификатор нашего видео. Его из общей ссылки необходимо как-то вычленить. Да, можно было бы сделать всё вручную и в $link вставлять уже вырезанный ID, но всё же лениться не будем и сделаем небольшой задел на будущее (например, для реализации какого-то интерфейса или интеграции скрипта в бота): parse_str( parse_url( $link, PHP_URL_QUERY ), $params ); $video_id = $params['v'] ?? exit; Далее формируем POST-запрос к конечной точке youtubei/v1/player: $arr = [ 'context' => [ 'client' => [ 'hl' => 'en', 'clientName' => 'WEB', 'clientVersion' => '2.20210721.00.00', 'mainAppWebInfo' => [ 'graftUrl' => '/watch?v=' . $video_id ] ] ], 'videoId' => $video_id ]; $curl = curl_init(); curl_setopt( $curl, CURLOPT_URL, 'https://www.youtube.com/youtubei/v1/player?key=AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8' ); curl_setopt( $curl, CURLOPT_HTTPHEADER, [ 'Content-Type:application/json' ] ); curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true ); curl_setopt( $curl, CURLOPT_POST, true ); curl_setopt( $curl, CURLOPT_POSTFIELDS, json_encode( $arr ) ); curl_setopt( $curl, CURLOPT_ENCODING, 'gzip, deflate' ); $result = json_decode( curl_exec( $curl ), JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES ); curl_close( $curl ); На данный момент в переменной $result хранится огромной массив полученных данных, некоторые из которых нам придётся вытащить и использовать для дальнейшей работы: $video_details = $result['videoDetails']; $streaming_data = $result['streamingData']; $formats = $streaming_data['formats']; $video_name = $video_details['title']; $video = []; foreach ( $formats as $key ) { $data = $key; $mime_type = explode( ';', $data['mimeType'] ); $data['mime'] = $mime_type[0]; $data['format'] = ltrim( substr( $mime_type[0], stripos( $mime_type[0], '/' ) ), '/' ); $video[] = $data; } $video_file_name = strtolower( str_replace( ' ', '_', $video_name ) ) . '.' . $video[0]['format']; $download_url = $video[0]['url']; $file_name = preg_replace( '/[^A-Za-z0-9.\_\-]/', '', basename( $video_file_name ) ); Дальше проверяем переменную $download на пустоту: if ( $download_url ) { header( 'Cache-Control: public' ); header( 'Content-Description: File Transfer' ); header( 'Content-Disposition: attachment; filename=' . $file_name ); header( 'Content-Type: application/zip' ); header( 'Content-Transfer-Encoding: binary' ); readfile( $download_url ); } Если всё окей - начнётся загрузка видео. В этот раз я не стал делать интерфейс, поэтому для тестирования достаточно открыть файл со скриптом в браузере. Весь код: <?php $link = 'https://www.youtube.com/watch?v=y2YUJ186Ke4'; parse_str( parse_url( $link, PHP_URL_QUERY ), $params ); $video_id = $params['v'] ?? exit; $arr = [ 'context' => [ 'client' => [ 'hl' => 'en', 'clientName' => 'WEB', 'clientVersion' => '2.20210721.00.00', 'mainAppWebInfo' => [ 'graftUrl' => '/watch?v=' . $video_id ] ] ], 'videoId' => $video_id ]; $curl = curl_init(); curl_setopt( $curl, CURLOPT_URL, 'https://www.youtube.com/youtubei/v1/player?key=AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8' ); curl_setopt( $curl, CURLOPT_HTTPHEADER, [ 'Content-Type:application/json' ] ); curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true ); curl_setopt( $curl, CURLOPT_POST, true ); curl_setopt( $curl, CURLOPT_POSTFIELDS, json_encode( $arr ) ); curl_setopt( $curl, CURLOPT_ENCODING, 'gzip, deflate' ); $result = json_decode( curl_exec( $curl ), JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES ); curl_close( $curl ); $video_details = $result['videoDetails']; $streaming_data = $result['streamingData']; $formats = $streaming_data['formats']; $video_name = $video_details['title']; $video = []; foreach ( $formats as $key ) { $data = $key; $mime_type = explode( ';', $data['mimeType'] ); $data['mime'] = $mime_type[0]; $data['format'] = ltrim( substr( $mime_type[0], stripos( $mime_type[0], '/' ) ), '/' ); $video[] = $data; } $video_file_name = strtolower( str_replace( ' ', '_', $video_name ) ) . '.' . $video[0]['format']; $download_url = $video[0]['url']; $file_name = preg_replace( '/[^A-Za-z0-9.\_\-]/', '', basename( $video_file_name ) ); if ( $download_url ) { header( 'Cache-Control: public' ); header( 'Content-Description: File Transfer' ); header( 'Content-Disposition: attachment; filename=' . $file_name ); header( 'Content-Type: application/zip' ); header( 'Content-Transfer-Encoding: binary' ); readfile( $download_url ); }1 балл
-
Получение ролей и прав в чатах Aprel Team
Наши чаты ориентированы на всё, что связано с Aprel Team и IT в целом. Мы ожидаем, что каждый будущий администратор умеет работать с онлайн-форумами и различными платформами, имеет представление об энциклопедических ресурсах и аналогичных инструментах. Права администратора в тематических чатах не предоставляются по желанию. Для их получения требуется подтверждение минимальных базовых знаний (будут рассмотрены сообщения в администрируемом чате, если сообщений нет - заявку можно не подавать). Доступ к таким чатам получают только те, кто соответствует установленным требованиям. Исключение составляют игровые разделы и флудилки: там можно обсуждать практически любые темы, если это не нарушает правила конкретного чата. Читаем Aprel Wiki или данную тему, только потом пишем, если есть вопросы и трудности. Aprel Wiki (полный список ролей и прав в чатах, инструкции и получение): > https://wiki.aprelteam.by/Получение_ролей_и_прав_в_чатах_Aprel_Team Обращения рассматриваются исключительно здесь. Уровни администрации в Telegram 1 уровень (совладельцы) = все пункты (без анонимности). 2 уровень (ЧКП) = все пункты, за исключением назначения администраторов. 3 уровень (комсорги) = все пункты, за исключением закрепов и назначения администраторов. 4 уровень (КЧП) = удаление сообщений, блокировка пользователей, пригласительные ссылки. 5 уровень = никаких разрешений. Только подпись.1 балл
-
ЯМяу
-1 балл@BJHorner я нашёл в интернете промокод на два месяца "плюса", пока подрубил его. А то без музыки как-то не очень-1 балл
Эта таблица лидеров рассчитана в Минск/GMT+03:00