Перейти к содержанию
  • Язык

Лидеры

  1. Oleg Aprel

    Генсек
    41
    Баллы
    1 399
    Постов
  2. 6
    Баллы
    73
    Постов
  3. BJHorner

    Делегаты
    6
    Баллы
    1
    Постов
  4. NoctisDGrace

    Делегаты
    3
    Баллы
    5
    Постов

Прославленный контент

Показан контент с высокой репутацией за 31.07.2025 во всех областях

  1. 6 баллов
    А можно пожалуйста потратить немного времени вместо бесконечных апдейтов кривого спота и уделить время ЯМяу?
  2. 4 балла
    Яндекс Музыка v2025.08.2: https://mega.nz/file/2XRQnTiQ#Sr1OenWTfbDKtuurJM8r-CTym_Xrd_P3XyrXEwjSh5s Чистая, стандартная, на русском, ничего лишнего. Подпись новая, поэтому версию 4.1 придётся удалить.
  3. Проверено на 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. Теперь вы можете забрать награду в «Заданиях».
  4. 3 балла
    Нет, я клал на моддинг в целом. И не раз пояснял что это хобби. Когда подгоняют, я обычно открываю PUBG или включаю сериал.
  5. 3 балла
    Пока что как альтернативу можно использовать Murglar. Крайне достойная замена. https://soft.aprelteam.su/android/142-murglar.html
  6. Всё началось с жалоб на платформу Telegram. В случае игнора Telegram удаляет посты, блокирует полностью каналы, ограничивает в регионах, либо вообще их удаляет. Kinopoisk несёт ответственность за всё, а не только за обложки и за описание к фильмам (тобишь за буквы и картинки), на которые в прошлом году подавали жалобу. Сейчас даже не указывают посты в жалобах, абсолютно, тупо все каналы и чаты под снос, включая те, которые вообще к тематике фильмов не имеют никакого отношения. ЯМа реагирует на упоминания этой же «ЯМы» от разных пользователей и в самых разных чатах и топиках Telegram. VK пока что не ведёт такую борьбу и такого ущемления как ЯМа, наверное и не вели никогда. Взять даже модификации и сторонние клиенты, их очень много, даже слишком. С момента разблокировки Telegram в РФ стал не таким крутым и свободным... Наш сервер в Discord > https://discord.aprelteam.su. В Discord до сих пор разрешена регистрация без указания номера. Наше пространство в Матрице > https://matrix.aprelteam.su. В Матрице не требуют личные данные. Номер для регистрации не нужен. Почему ЯМа везде отправляет жалобы? Потому что это идеальный способ блокировки и сноса вообще чего угодно, даже не имея на это никаких оснований. Этим способом до сих пор сносят целые каналы на YouTube и в Telegram. Все жалобы одобряются ботами и в редком случае модерацией. Существует масса сервисов по накрутке жалоб. Этим пользуются многие, так как эффект от подобного огроменный) Осторожнее с картинками в Telegram! Использовать скриншоты сайтов Ямы на своём же канале в Telegram запрещено и осторожнее с ботом @pic в чатах, так как абсолютно все отправленные картинки через данного бота - это владение Yandex и автоматически повод для подачи жалобы на ваш аккаунт и на чат, в котором это было отправлено. Вбиваете в поиск любого чата слово Yandex и тут же куча контента от бота @pic. Был скриншот с нашим почтовиком Aprel Mail, на фоне которого была картинка Happy Halloween, которая вообще не то что к ЯМе, а к РФ в общем не имеет отношения. Тот пост Telegram заблокировал. И дополнили жалобу (добавили жалобу на канал @aprelthemes - где тупо темы для телеги). Страйки кидают постоянно. Цель понятна - уничтожить канал (даже если там нет нарушений, телега всё исполнит автоматически). Людям помогал до 2022 различными способами, делая моды и не только моды, но по итогу остался ни с чем, так как никаких донатов я не принимал, никаких благодарностей. В 2022 году Яндекс стёр меня везде. Мне удалили все каналы в Telegram, все чаты, мой аккаунт, заблокировали все мои каналы на YouTube, включая профиль, заблокировали паблик ВКонтакте вместе с личной страницей, даже канал на RuTube. 1 апреля 2022 года я сделал всё заново и начал делать свои независимые сайты, сделал себе новые аккаунты и теперь без разницы что удалять, я как вирус)
  7. 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.458
  8. Как видите поддержка существует, есть и работает. Учитывая популярность платформы, разблокировка заняла больше нескольких суток. Вероятнее всего помогли участники сообщества, которые писали в поддержку. От канала Aprel Mods за время блокировки отписалось более 5600 участников. Суммарно с другими заблокированными чатами, каналами более 7400. Аудитория форума, матрицы, дискорда и чатов, которые удалось разблокировать моментально наоборот пополнилась. ❤️💚
  9. Активируем инструменты разработчика. Для этого в комнате прописываем и отправляем команду /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": Цвет фона кнопки реакций при выборе.
  10. Здравствуйте! Возможно создать модифицировать Яндекс Карты?
  11. 1. Приложение 2. Яндекс Музыка мод на бесконечный плюс 3. Изменить имя пакета в моде с ru.yandex.music на com.spotify.music или com.apple.android.music
  12. 1 балл
    Расширение Aprel FM опубликовано и обновлено в магазине расширений Firefox! https://addons.mozilla.org/ru/firefox/addon/aprelfm
  13. Я недавно купил китайский 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: более добрая к работе через едл На этом все. Сяоми хуйня
  14. 1 балл
    TurboTel Pro TurboTel Pro — альтернативный клиент Telegram. Много дополнительных фишек (скрытие чатов, скрытие аккаунтов, изменение шрифта, настройка внешнего вида под стиль iOS). Есть режим призрака (нечиталка, неписалка, скрытие онлайна), возможность читать удалённые сообщения, а также отслеживать действия контактов (смена номера, фото и т.д.). Модификация предоставляет все возможности для любителей по настоящему правильных клиентов. Получена локальная подписка Telegram Premium. Доступно чтение удалённых сообщений. Открыта возможность скачивать любой контент и снимать скриншоты в каналах и чатах где есть запрет на копирование и многое другое. Сводка Добавил Oleg Aprel Добавлено 02/26/26 Категория Программы Канал в Telegram Чат в Telegram Просмотр файла
  15. Обновлю после VK Почты в таком случае.
  16. "Запрет - это самая большая свобода" © Мизулина Елена Борисовна Предупреждения: Работает исключительно на сайты, которые были зацензурированы силами РКН. Для получения доступа к сайтам, которые заблокировали забугорные гей-ниггеры из-за того, что не любят Россиюшку, надо пользоваться другими вариантами. Я пишу про исключительно бесплатную антицензуру. Если кто-то не способен купить вэ пэ эн, он не заслужил свободного интернета. Запрет работает только на ПК. В этой части никаких объяснений не будет. Исключительно пошаговая инструкция картиночками и редкими комментариями. Просто делай, как рассказано - показано, и все должно заработать. Преднастройка(ВНИМАНИЕ! ОБНОВЛЕНО!) Зайди в свой браузер. Зайди в настройки браузера. В Chrome: "Конфиденциальность и безопасность" -> Дополнительные настройки -> Использовать безопасный DNS-сервер (ВКЛЮЧИТЬ) -> Выбрать поставщика услуг DNS (из выпадающего списка выбрать либо CloudFlare, либо Google): В Mozilla (FireFox): "Приватность и защита" -> Долистать вниз до "Включить DNS через HTTPS, используя:" -> Отметить "Максимальную защиту" -> Выбрать поставщика (из выпадающего списка выбрать CloudFlare): Часть 1. Как скачать? Качать тут: https://github.com/Flowseal/zapret-discord-youtube Извлечь содержимое zip в отдельную папку. Часть 2. Че это за дичь? Почему так много файлов? Как это теперь запустить? Ничего не трогай, с этого момента читай внимательно. Делай ровно так, как написано, не пропускай шаги. Найди внизу файл service.bat. Запусти. Увидишь консольку с вариантами действий. На данном этапе тебя не ебет абсолютно ничего, кроме трех вещей: СНАЧАЛА НАДО ЗАПУСТИТЬ ТЕСТЫ. Нахуя? Да потому что в разных регионах будут работать разные варианты обхода, т.е. разные конфигурации. Более того, даже если сегодня работает один конфиг, завтра твой провайдер может эту лавочку прикрыть. И надо будет тестировать и искать, какой вариант будет работать сегодня. Видишь последнюю строчку "Select option (0-11)"? Вот тебя просят выбрать, что ты хочешь сделать. А хочешь ты запустить тесты. Так что надо написать 11 без пробелов, точек, скобочек и т.д. а после стукнуть Enter Откроется новое окно. не пугайся. Все так и надо. Тебя снова попросят выбрать. Пиши 1, затем жми Enter Далее будет вопрос, хочешь ты просканировать все конфиги по очереди, либо какие-то отдельные. При первом запуске точно выбирай "All Configs" Пиши 1, жми Enter Тестирование займет несколько минут. В конце будет ответ, какой из 11 конфигов самый быстрый и рабочий для твоего региона. Судя по ответу, самый крутой конфиг 3-й. Жми любую клавишу, окно закроется. Останется это, опять нажми любую клавишу, чтобы вернуться в "меню с действиями". ЧАСТЬ 3. Запуск Пиши 1, жми Enter. Появится список всех существующих вариантов обхода (конфигураций). Тесты определили, что лучший конфиг 3-й, потому его и выбирай. Пиши 3 - Жми Enter Конфиг запустится, ничего не трогай, пока не появится внизу вот такая штука: ПОДКЛЮЧЕНИЕ РЕСУРСОВ АПРЕЛЯ Недавно ресурсы апреля были прощены и возвращены народу РФ. Однако, как долго это вообще продлится, никто сказать не сможет. Если после включения запрета gokino.su и aprelteam.su все еще не работают, можно немного поколдовать. Ищем папку "lists" Внутри нее файл list-general.txt Листаем до конца и дописываем домены апреля: list-general.txt ... aprelteam.su gokino.su Сохранить - закрыть Теперь надо снова запустить запрет. То есть, запустить Install Service - выбрать 3-й вариант обхода, дождаться ответа, что все ок. Теперь ресурсы должны заработать. В целом, таким образом можно обходить любые ограничения, которые были наложены со стороны РКН. Достаточно просто прописать все домены, к которым нужен доступ. ЕСЛИ ВСЕ ПЕРЕТЫКАЛ УЖЕ И ВСЕ РАВНО НИЧЕГО НЕ РАБОТАЕТ Подожди немного. Некоторым конфигам нужно время, что б врезаться в сеть. Это обусловлено самой механикой обхода DPI. Технология работает не мгновенно, не как vpn. Она маскирует трафик и пакеты. Можешь перезагрузить браузер, попить чаек, постучать в бубен. Через 5 минут все заработает. Если все равно нет, проверь обновления запрета. Ну, я думаю, уже понятно, что надо напечатать 9 и прожать Enter. Если действительно надо обновиться, тебе будет предложено перейти на github. Там чуть ниже найдешь zip и rar файлики с обнолвенным пофикшенным запретом. ОБНОВЛЕНИЕ ФАЙЛА HOSTS ДЛЯ ВКЛЮЧЕНИЯ РАБОТЫ ТЕЛЕГРАММ НА ЗАПРЕТЕ Файл hosts — это системный текстовый документ без расширения, который содержит базу данных доменных имен и их IP-адресов. Когда вы вводите адрес сайта в браузере, компьютер сначала заглядывает в этот файл, и только потом обращается к глобальным DNS-серверам. Умные ребята из zapret-комьюнити составили файл со списком хостов, которые надо внести в этот файл, что б zapret заработал. откроется блокнот со списком хостов. их все надо скопировать (Ctrl+A -> Ctrl+C) потом надо открыть блокнот от имени администратора. НЕ ТОТ ФАЙЛ, КОТОРЫЙ АВТОМАТИЧЕСКИ ОТКРЫЛСЯ ЗАПРЕТОМ СО СПИСКО ХОСТОВ, А ИМЕННО САМ БЛОКНОТ ОТКРЫТЬ ОТ ИМЕНИ АДМИНИСТРАТОРА В ОТКРЫВШИЙСЯ ПУСТОЙ ФАЙЛ вставляем список хостов, которые скопировали ранее. Далее "Файл -> Сохранить как..." Путь для сохранения: C:\Windows\System32\drivers\etc после того как поменять "Текстовые документы" на "все файлы", появится список файлов без расширений, в числе которых будет "hosts". Жмем на него и сохраняем, соглашаясь со всем, что пишут. Проверяем, что все выглядит именно так, как надо: Все, теперь hosts свежий. Можно включать zapret. Телега летает.
  17. Можно использовать Shelter или Island - тоже делают закрытые пространство
  18. @c4elovek, об ошибке в курсе. Плейлисты пока что могут отображаться плохо. Повторы и прочее. Бесконечный повторяющийся список. Всё исправлю. Используйте поиск, лайки пока что, плейлисты полные, проблемы только с отображением.
  19. 1 балл
    Telegram Premium — мод на официальный клиент Telegram Direct с официального сайта Telegram. Предоставляет все возможности для любителей по настоящему правильных клиентов. Получена локальная подписка Telegram Premium. Доступно чтение удалённых сообщений. Открыта возможность скачивать любой контент и снимать скриншоты в каналах и чатах где есть запрет на копирование. Анонимный просмотр историй и многое другое. Telegram Direct — такой же мод на официальный клиент Telegram Direct с официального сайта Telegram, но не клон. Telegram — такой же мод на официальный клиент Telegram, но с Google Play (ограниченный). Где теперь хранятся старые версии файлов? Matrix, Discord, Telegram Загрузить Android 5.0+
  20. 1 балл
    Здесь обсуждаем и делаем различные моды любых Android-приложений. Инструкции, патчи, модули и многое другое. Здесь будем постепенно всё закреплять, публиковать. Это не стол заказов, а обсуждение моддинга, инструкции по моддингу, патчинг и прочее. Инструкция по LSPatch (ROOT не требуется)
  21. Эта инструкция больше написана для новиопов, которые не умеют юзать запрет. На самом деле, этот инструмент достаточно мощный и гибко настраивается. Если тема будет востребована, то сделаю разбор всех файлов и папок, которые в нем есть и покажу, как настраивать доступ к чему угодно и самостоятельно исправлять, если он будет слетать.
  22. Инструкция прописана на случай, если доступ опять снесут. РКН периодически попинывает Олега. Подозреваю, просто не понимают, что делать с ним и его ресурсами. К тому же, что доступно в МСК, не всегда доступно в регионах. О них тоже надо думать хотя бы иногда :D
  23. У меня кино без обходов работает и форум этот тоже, МСК
  24. 1 балл
    @rawneko спасибо. так и сделал. ничем не хуже самого ямяу. всё что надо есть и даже больше. в ямяу я не мог слушать подкасты а тут могу.
  25. 1 балл
    Где модер... всякие ебланы тут уж5 бизнес по продаже подписки развели
  26. Какой-то лютый бред со стороны ТГ. Тип, виолейтинг накинули не на что-то конкретное, а на всю сетку Апреля, что само по себе пиздец. Скорее всего, прямого нарушаения не было, и это просто действительно точечный блок. Ибо, к сожалению, ТГ прогибаются под Ру правительство и их запросы, абсолютно не смотря на то, что правительство и N-ные органы всё ТэГэ тарабанило и в ж0пу, и ещё куда только не попадя. Брух, один большой Брух.
  27. 1 балл
    Получил бан за использование старого версии Ямяу круто 2 бана в 2025г и 2026г Жду следующего года что бы мой аккаунт разблокировали Долго ждать обновление Яндекс замечает старые версии и блокирует Что то может меня подключить семейный подписки Яндекс плюс ТГ @tigor11
  28. 1 балл
    Telegram Beta (Autoupdate) Telegram Beta. Автообновляемая версия. Всегда актульная. </> The auto-updatable version. Always relevant. File Information Submitter Oleg Aprel Submitted 02.03.2026 Category Программы View File
  29. 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. Проблемы и их решения Отключить сохранение удалённых сообщений нельзя. Меток нет. Очистка базы данных в меню очистки кэша почистит все удалённые. Анонимный просмотр историй работает только на актуальных историях. Загрузить
  30. 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.0
  31. 1 балл
    @krism12, я сейчас занимаюсь мессенджерами, музыка после. Можете использовать Murglar.
  32. Куда лайки ставить? Очень уважаю упорство в изучении китайского и (чучуть) завидую ему. Я примерно так же начинала учить года четыре назад после всех этих новелл с мужиками на мечах, хватило меня на пару месяцев и всё тут. Смотивировало снова попробовать, конечно, — время было славное
  33. Добро пожаловать! Общую информацию можешь посмотреть тут Если что-то заинтересует и появятся вопросы, то можешь их задать на форуме в любую связанную с заинтересовавшим разделом тему, либо писать в чаты. Заранее советую ознакомиться с правилами чатов и правилами публикаций на форуме.
  34. 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.100
  35. 1 балл
    @Cryo Monarch, Premium универсальный, но он локальный. Эмодзи это серверная фича, проверка идёт через сервер Telegram. Без взлома сервера это не обойти. После активации Premium нужно выбрать другой источник перевода голосовых.
  36. Установила на Винду.Работает.Красота))) Спасибо!)
  37. 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.1121
  38. Всё зависит от плеера. На данный момент запоминание идёт в куки (cookie) и оно привязано к конкретному устройству. В дальнейшем будет расширение возможностей, но в первую очередь нужен собственный плеер. Если что, то в новостях оповещу.
  39. Актуальная версия BOOM (VK Музыка): 6.1.141 Последнее обновление: 19.04.2023 ? Что это такое: BOOM (VK Музыка) — стриминговый сервис, который объединяет крупнейшую музыкальную библиотеку ВКонтакте и Одноклассников. Приложение позволит не только загрузить музыку, но и слушать её без интернета.
  40. 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 < Прошлые версии
  41. По умолчанию в трее висит иконка приложения и там есть меню. Приложение всегда сворачивается в трей. Можно поменять настройку в инструментах. Либо через трей, либо по кнопке ALT. Меню > Инструменты > Свернуть в трей при закрытии.
  42. 1. Приложение 2. Яндекс навигатор. https://play.google.com/store/apps/details?id=ru.yandex.yandexnavi 3. на данный момент подключение навигатора к андроид-авто работает только при наличии подписки. Было бы отлично заставить работать данный функционал без подписки
  43. 1. Программа 2. Deezer Premium https://forum.aprelteam.su/mur/deezer-premium 3. Обновление до последней версии
  44. 1 балл
    Воможно ли сделать мод на какую-то хорошую виртуалку? как .exe, так и .apk. Думаю, что это актуально будет, так как некоторые могут скидывать вредоносные файлы, а через виртуалку можно безопасно проверить. Как идея?
  45. Вероятно, многие из пытавшихся реализовать скачивание видосов с ютуба уже натыкались на 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 ); }
  46. Наши чаты ориентированы на всё, что связано с Aprel Team и IT в целом. Мы ожидаем, что каждый будущий администратор умеет работать с онлайн-форумами и различными платформами, имеет представление об энциклопедических ресурсах и аналогичных инструментах. Права администратора в тематических чатах не предоставляются по желанию. Для их получения требуется подтверждение минимальных базовых знаний (будут рассмотрены сообщения в администрируемом чате, если сообщений нет - заявку можно не подавать). Доступ к таким чатам получают только те, кто соответствует установленным требованиям. Исключение составляют игровые разделы и флудилки: там можно обсуждать практически любые темы, если это не нарушает правила конкретного чата. Читаем Aprel Wiki или данную тему, только потом пишем, если есть вопросы и трудности. Aprel Wiki (полный список ролей и прав в чатах, инструкции и получение): > https://wiki.aprelteam.by/Получение_ролей_и_прав_в_чатах_Aprel_Team Обращения рассматриваются исключительно здесь. Уровни администрации в Telegram 1 уровень (совладельцы) = все пункты (без анонимности). 2 уровень (ЧКП) = все пункты, за исключением назначения администраторов. 3 уровень (комсорги) = все пункты, за исключением закрепов и назначения администраторов. 4 уровень (КЧП) = удаление сообщений, блокировка пользователей, пригласительные ссылки. 5 уровень = никаких разрешений. Только подпись.
Эта таблица лидеров рассчитана в Минск/GMT+03:00

Важная сводка

Мы разместили cookie-файлы на твоё устройство, чтобы помочь сделать этот форум лучше. Ты можешь корректировать своё управление cookie-файлами, или же продолжить без каких-либо корректировок.

Иконка перчаток с несколькими звуками
Иконка перчаток

Досье

Навигация

Розыск

Розыск

Настройка push-извещений браузера

Chrome (Android)
  1. Нажми на значок замка рядом с адресной строкой.
  2. Нажми Разрешения → Извещения.
  3. Корректируй свои предпочтения.
Chrome (Desktop)
  1. Нажми на значок замка в адресной строке.
  2. Выбери Управление сайта.
  3. Разыщи Изввещения и корректируй свои предпочтения.