Лидеры
-
Oleg Aprel
Генсек36Баллы1 399Постов -
BJHorner
Делегаты6Баллы1Постов -
aJleXaHDeR
Делегаты2Баллы1Постов -
Скорбная Лиса
Aprel Team2Баллы73Постов
Прославленный контент
Показан контент с высокой репутацией за 31.07.2025 в Телеграммы
-
ЯМяу
6 балловА можно пожалуйста потратить немного времени вместо бесконечных апдейтов кривого спота и уделить время ЯМяу?6 баллов
-
ЯМяу
4 баллаЯндекс Музыка v2025.08.2: https://mega.nz/file/2XRQnTiQ#Sr1OenWTfbDKtuurJM8r-CTym_Xrd_P3XyrXEwjSh5s Чистая, стандартная, на русском, ничего лишнего. Подпись новая, поэтому версию 4.1 придётся удалить.4 балла
-
Выполнение заданий в Discord не скачивая игры | Discord Orbs
Проверено на Arch Linux, Manjaro KDE, а также на Garuda KGE Gaming. Официальное приложение Discord Desktop. 1. Если вы из РФ, то включите любой ОВЕ для обхода. Можете использовать наш сервер: https://discord.aprelteam.su. 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 applicationName = quest.config.application.name; const questName = quest.config.messages.questName; const taskConfig = quest.config.taskConfig ?? quest.config.taskConfigV2; const taskName = supportedTasks.find(x => taskConfig.tasks[x] != null); const secondsNeeded = taskConfig.tasks[taskName].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[Игра] Подделка игры "${applicationName}". Ждите ${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. Теперь вы можете забрать награду в «Заданиях».3 балла
-
ЯМяу
3 баллаНет, я клал на моддинг в целом. И не раз пояснял что это хобби. Когда подгоняют, я обычно открываю PUBG или включаю сериал.3 балла
-
ЯМяу
3 баллаПока что как альтернативу можно использовать Murglar. Крайне достойная замена. https://soft.aprelteam.su/android/142-murglar.html3 балла
-
Spotishka
2 баллаАктуальная версия 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.4582 балла
-
Темы для 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 балла
-
Стол заказов Aprel Mods
2 балла
-
Стол заказов Aprel Mods
2 балла1. Приложение 2. Яндекс Музыка мод на бесконечный плюс 3. Изменить имя пакета в моде с ru.yandex.music на com.spotify.music или com.apple.android.music2 балла
-
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 балл
-
TurboTel Pro
1 баллTurboTel Pro TurboTel Pro — альтернативный клиент Telegram. Много дополнительных фишек (скрытие чатов, скрытие аккаунтов, изменение шрифта, настройка внешнего вида под стиль iOS). Есть режим призрака (нечиталка, неписалка, скрытие онлайна), возможность читать удалённые сообщения, а также отслеживать действия контактов (смена номера, фото и т.д.). Модификация предоставляет все возможности для любителей по настоящему правильных клиентов. Получена локальная подписка Telegram Premium. Доступно чтение удалённых сообщений. Открыта возможность скачивать любой контент и снимать скриншоты в каналах и чатах где есть запрет на копирование и многое другое. Сводка Добавил Oleg Aprel Добавлено 02/26/26 Категория Программы Канал в Telegram Чат в Telegram Просмотр файла1 балл
-
Обновление для повесточки
1 балл
-
Бесконечный дублирующийся плэйлист
1 балл
-
Бесконечный дублирующийся плэйлист
@c4elovek, об ошибке в курсе. Плейлисты пока что могут отображаться плохо. Повторы и прочее. Бесконечный повторяющийся список. Всё исправлю. Используйте поиск, лайки пока что, плейлисты полные, проблемы только с отображением.1 балл
-
Telegram Premium
1 баллTelegram Premium — мод на официальный клиент Telegram Direct с официального сайта Telegram. Предоставляет все возможности для любителей по настоящему правильных клиентов. Получена локальная подписка Telegram Premium. Доступно чтение удалённых сообщений. Открыта возможность скачивать любой контент и снимать скриншоты в каналах и чатах где есть запрет на копирование. Анонимный просмотр историй и многое другое. Telegram Direct — такой же мод на официальный клиент Telegram Direct с официального сайта Telegram, но не клон. Telegram — такой же мод на официальный клиент Telegram, но с Google Play (ограниченный). Где теперь хранятся старые версии файлов? Matrix, Discord, Telegram Загрузить Android 5.0+1 балл
-
Клуб Mod APK
1 баллЗдесь обсуждаем и делаем различные моды любых Android-приложений. Инструкции, патчи, модули и многое другое. Здесь будем постепенно всё закреплять, публиковать. Это не стол заказов, а обсуждение моддинга, инструкции по моддингу, патчинг и прочее. Инструкция по LSPatch (ROOT не требуется)1 балл
-
ЯМяу
1 балл@rawneko спасибо. так и сделал. ничем не хуже самого ямяу. всё что надо есть и даже больше. в ямяу я не мог слушать подкасты а тут могу.1 балл
-
ЯМяу
1 балл
-
ЯМяу
1 баллПолучил бан за использование старого версии Ямяу круто 2 бана в 2025г и 2026г Жду следующего года что бы мой аккаунт разблокировали Долго ждать обновление Яндекс замечает старые версии и блокирует Что то может меня подключить семейный подписки Яндекс плюс ТГ @tigor111 балл
-
Telegram Beta
1 баллTelegram Beta (Autoupdate) Telegram Beta. Автообновляемая версия. Всегда актульная. </> The auto-updatable version. Always relevant. File Information Submitter Oleg Aprel Submitted 02.03.2026 Category Программы View File1 балл
-
iMe Premium
1 баллНовая версия: 12.3.3 Дата выпуска: 21.02.2026 Новые корректировки Удалены все модули. Теперь всё вшито в код и активировано изначально (локальная подписка Telegram Premium, iMe Premium и весь предыдущий функционал). Всегда отображается значок загрузки, а также везде указывается точное количество участников, подписчиков и т.д. Все удалённые сообщения записываются в базу данных (это не модуль, а ручное изменение кода). Обновление до актуальной версии. Старые корректировки Имя пакета и другие данные в модификации iMe Premium изменены с com.iMe.android.web на su.aprelteam.imepremium. Благодаря этому данная версия установится рядом с оригинальным iMe, iMe Direct или рядом с любым другим клиентом. Вырезано окошко с принудительным обновлением, которое полностью закрывало доступ к использованию приложения и кнопка с обновлением в боковой менюшке. Открыта возможность скачивать, копировать любой контент и снимать скриншоты в каналах и чатах, где установлен запрет на копирование. Изменён номер сборки (можно установить предыдущую версию без удаления данной). Сняты ограничения на скриншоты и на запись экрана со всех разделов (не модуль). Скрыты обновления (всегда актуальная версия во всех магазинах приложений). Удалена реклама и аналитика. Полное отключение спонсорской рекламы. Название приложения изменено на «iMe Premium». Изменена подпись (обновления только здесь). Разблокирован полный перевод чатов. Удалены библиотеки x86_64 и x86. Проблемы и их решения Отключить сохранение удалённых сообщений нельзя. Меток нет. Очистка базы данных в меню очистки кэша почистит все удалённые. Анонимный просмотр историй работает только на актуальных историях. Загрузить1 балл
-
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 балл
-
Spotishka
1 баллНовая версия: 9.0.72.967 Дата выпуска: 23.08.2025 Новые корректировки В одном месте заменён ключ для авторизации. Обновление до актуальной версии. Старые корректировки Имя пакета и другие данные изменены с com.spotify.music на su.aprelteam.spotishka. Благодаря этому модифицированное приложение установится рядом с оригинальным Spotify или рядом с нашей другой модификацией. Сняты практически все ограничения приложения (выбор любых песен и альбомов, очень высокое качество звука - визуально, переключение треков, случайный выбор, повторы, перемотки FWD / BWD, Spotify Connect). Изменён номер сборки (можно установить предыдущую версию без удаления данной). Скрыты обновления (всегда актуальная версия во всех магазинах приложений). Отключено принудительное перемешивание треков. Полностью исправлен перевод на русский язык. Название приложения изменено на «Spotishka». Изменена подпись (обновления только здесь). Тёмная тема изменена на чёрную (AMOLED). Для текстов задействуется Musixmatch. Удалены библиотеки для x86_64 и x86. Удалена реклама и аналитика. Premium до 01.04.2075 ) 🛠 Загрузить Element </> Matrix Spotishka v9.0.72.967 Spotify Mystery v9.0.72.967 Spotify Mystery v9.0.74.1121 ☭ Discord Spotishka v9.0.72.967 Spotify Mystery v9.0.72.967 Spotify Mystery v9.0.74.1121 ☭ Telegram Spotishka v9.0.72.967 Spotify Mystery v9.0.72.967 Spotify Mystery v9.0.74.11211 балл
-
есть ли синхронизация на разных устройствах?
Всё зависит от плеера. На данный момент запоминание идёт в куки (cookie) и оно привязано к конкретному устройству. В дальнейшем будет расширение возможностей, но в первую очередь нужен собственный плеер. Если что, то в новостях оповещу.1 балл
-
BOOM \\ VK Музыка
1 баллАктуальная версия BOOM (VK Музыка): 6.1.141 Последнее обновление: 19.04.2023 ? Что это такое: BOOM (VK Музыка) — стриминговый сервис, который объединяет крупнейшую музыкальную библиотеку ВКонтакте и Одноклассников. Приложение позволит не только загрузить музыку, но и слушать её без интернета.1 балл
-
Spotify TV
1 баллАктуальная версия Spotify TV: 1.91.8 Последнее обновление: 04.07.2025 Spotify TV — цифровой музыкальный сервис, с помощью которого можно получить доступ к миллионам треков. Android TV 5.0+ > Spotify TV v1.91.8 < > https://soft.aprelteam.su/android/5-spotifypremium.html < > https://github.com/aprelkun/spotifytv/releases < Прошлые версии1 балл
-
не открывается приложение aprel kino на пк
По умолчанию в трее висит иконка приложения и там есть меню. Приложение всегда сворачивается в трей. Можно поменять настройку в инструментах. Либо через трей, либо по кнопке ALT. Меню > Инструменты > Свернуть в трей при закрытии.1 балл
-
не получается сменить юзернейм + ломаются рефералочки с пробелами в юзернейме
Установил новый юзернейм puro.1 балл
-
Стол заказов Aprel Mods
1 балл1. Приложение 2. Яндекс навигатор. https://play.google.com/store/apps/details?id=ru.yandex.yandexnavi 3. на данный момент подключение навигатора к андроид-авто работает только при наличии подписки. Было бы отлично заставить работать данный функционал без подписки1 балл
-
Стол заказов Aprel Mods
1 балл1. Программа 2. Deezer Premium https://forum.aprelteam.su/mur/deezer-premium 3. Обновление до последней версии1 балл
-
виртуалка
1 баллВоможно ли сделать мод на какую-то хорошую виртуалку? как .exe, так и .apk. Думаю, что это актуально будет, так как некоторые могут скидывать вредоносные файлы, а через виртуалку можно безопасно проверить. Как идея?1 балл
-
Скрипт для скачивания видео с 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