TG работает совсем иначе. Вот как выглядит отдельное событие (пост в канале "Коммерсант FM (Эфиры)")
message {
id = 7525629952
sender_id = messageSenderChat {
chat_id = -1002401255574
}
chat_id = -1002401255574
sending_state = null
scheduling_state = null
is_outgoing = false
is_pinned = false
is_from_offline = false
can_be_saved = true
has_timestamped_media = true
is_channel_post = true
contains_unread_mention = false
date = 1759788667
edit_date = 0
forward_info = null
import_info = null
interaction_info = messageInteractionInfo {
view_count = 13
forward_count = 0
reply_info = null
reactions = null
}
unread_reactions = vector[0] {
}
fact_check = null
reply_to = null
message_thread_id = 0
topic_id = null
self_destruct_type = null
self_destruct_in = 0.000000
auto_delete_in = 0.000000
via_bot_user_id = 0
sender_business_bot_user_id = 0
sender_boost_count = 0
paid_message_star_count = 0
author_signature = ""
media_album_id = 0
effect_id = 0
has_sensitive_content = false
restriction_reason = ""
content = messageAudio {
audio = audio {
duration = 3594
title = "00:00 мск - 07.10.2025"
performer = "Коммерсант FM"
file_name = "00-00.mp3"
mime_type = "audio/mpeg"
album_cover_minithumbnail = minithumbnail {
width = 40
height = 40
data = bytes [838] { FF D8 FF E0 00 10 4A 46 49 46 00 01 01 00 00 01 00 01 00 00 FF DB 00 43 00 28 1C 1E 23 1E 19 28 23 21 23 2D 2B 28 30 3C 64 41 3C 37 37 3C 7B 58 5D 49 64 91 80 99 96 8F 80 8C 8A A0 B4 E6 C3 A0 ...}
}
album_cover_thumbnail = thumbnail {
format = thumbnailFormatJpeg {
}
width = 320
height = 320
file = file {
id = 2407
size = 13351
expected_size = 13351
local = localFile {
path = ""
can_be_downloaded = true
can_be_deleted = false
is_downloading_active = false
is_downloading_completed = false
download_offset = 0
downloaded_prefix_size = 0
downloaded_size = 0
}
remote = remoteFile {
id = "AAMCAgADIQUABI8gQJYAAhwJaPQbGpaA0my6kVMKN8b8nl6qlQkAAsJ-AAI0NiBLq_Tjxbm4bAwBAAdtAAM2BA"
unique_id = "AQADwn4AAjQ2IEty"
is_uploading_active = false
is_uploading_completed = true
uploaded_size = 13351
}
}
}
external_album_covers = vector[2] {
thumbnail {
format = thumbnailFormatJpeg {
}
width = 100
height = 100
file = file {
id = 2409
size = 0
expected_size = 0
local = localFile {
path = ""
can_be_downloaded = true
can_be_deleted = false
is_downloading_active = false
is_downloading_completed = false
download_offset = 0
downloaded_prefix_size = 0
downloaded_size = 0
}
remote = remoteFile {
id = "AAg9I2F1ZGlvX3QjMDA6MDAg0LzRgdC6IC0gMDcuMTAuMjAyNSPQmtC-0LzQvNC10YDRgdCw0L3RgiBGTSMxIwACAw"
unique_id = "_wAIPSNhdWRpb190IzAwOjAwINC80YHQuiAtIDA3LjEwLjIwMjUj0JrQvtC80LzQtdGA0YHQsNC90YIgRk0jMSMAAg"
is_uploading_active = false
is_uploading_completed = true
uploaded_size = 0
}
}
}
thumbnail {
format = thumbnailFormatJpeg {
}
width = 600
height = 600
file = file {
id = 2410
size = 0
expected_size = 0
local = localFile {
path = ""
can_be_downloaded = true
can_be_deleted = false
is_downloading_active = false
is_downloading_completed = false
download_offset = 0
downloaded_prefix_size = 0
downloaded_size = 0
}
remote = remoteFile {
id = "AAg9I2F1ZGlvX3QjMDA6MDAg0LzRgdC6IC0gMDcuMTAuMjAyNSPQmtC-0LzQvNC10YDRgdCw0L3RgiBGTSMwIwACAw"
unique_id = "_wAIPSNhdWRpb190IzAwOjAwINC80YHQuiAtIDA3LjEwLjIwMjUj0JrQvtC80LzQtdGA0YHQsNC90YIgRk0jMCMAAg"
is_uploading_active = false
is_uploading_completed = true
uploaded_size = 0
}
}
}
}
audio = file {
id = 2408
size = 57503744
expected_size = 57503744
local = localFile {
path = ""
can_be_downloaded = true
can_be_deleted = false
is_downloading_active = false
is_downloading_completed = false
download_offset = 0
downloaded_prefix_size = 0
downloaded_size = 0
}
remote = remoteFile {
id = "CQACAgIAAyEFAASPIECWAAIcCWj0GxqWgNJsupFTCjfG_J5eqpUJAALCfgACNDYgS6v048W5uGwMNgQ"
unique_id = "AgADwn4AAjQ2IEs"
is_uploading_active = false
is_uploading_completed = true
uploaded_size = 57503744
}
}
}
caption = formattedText {
text = "🕙 Не удалось найти плейлист за этот час. Навигация по дате, времени. Клик по хештегу отсортирует записи по этому каналу или всем чатам:
Навигация по дате, времени. Клик по хештегу отсортирует записи по этому каналу или всем чатам: #д07102025 #ч00 @recradio"
entities = vector[5] {
textEntity {
offset = 78
length = 7
type = textEntityTypeBold {
}
}
textEntity {
offset = 174
length = 7
type = textEntityTypeBold {
}
}
textEntity {
offset = 233
length = 10
type = textEntityTypeHashtag {
}
}
textEntity {
offset = 244
length = 4
type = textEntityTypeHashtag {
}
}
textEntity {
offset = 249
length = 9
type = textEntityTypeMention {
}
}
}
}
}
reply_markup = replyMarkupInlineKeyboard {
rows = vector[3] {
vector[1] {
inlineKeyboardButton {
text = "Список Радиостанций"
type = inlineKeyboardButtonTypeUrl {
url = "https://t.me/recradio"
}
}
}
vector[1] {
inlineKeyboardButton {
text = "СЛУШАТЬ ПРЯМОЙ ЭФИР"
type = inlineKeyboardButtonTypeUrl {
url = "https://volna.top/radio-kommersant?tlg"
}
}
}
vector[1] {
inlineKeyboardButton {
text = "Поддержать"
type = inlineKeyboardButtonTypeUrl {
url = "https://t.me/recradio/4"
}
}
}
}
}
}
Оно состоит из отдельных элементов: текст, превьюшка, прикреплённый файл и т.д. Нас интересует файл:
audio = file {
id = 2408
size = 57503744
expected_size = 57503744
local = localFile {
path = ""
can_be_downloaded = true
can_be_deleted = false
is_downloading_active = false
is_downloading_completed = false
download_offset = 0
downloaded_prefix_size = 0
downloaded_size = 0
}
remote = remoteFile {
id = "CQACAgIAAyEFAASPIECWAAIcCWj0GxqWgNJsupFTCjfG_J5eqpUJAALCfgACNDYgS6v048W5uGwMNgQ"
unique_id = "AgADwn4AAjQ2IEs"
is_uploading_active = false
is_uploading_completed = true
uploaded_size = 57503744
}
}
Как видно, никаких ссылок никто никому не присылает. Приходит лишь идентификатор файла. Когда Миранда скачивает файл (автоматически или по запросу пользователя), она отправляет на сервер запрос "а дай мне файл с вот таким идентификатором" и в ответ получает файл.
Сейчас я запросил историю этого канала. Завтра попробую скачать какие-нибудь из этих эфиров. Также, попробую очистить и заново закачать историю и мы увидим на примере вон того события, поменяется ли хоть что-то в нём (вдруг идентификаторы протухают каким-то образом? тогда через несколько часов загрузка этого события с сервера будет содержать иные идентификаторы).