from telethon.sync import TelegramClient
from telethon.tl.functions.messages import GetHistoryRequest
api_id = YOUR_API_ID
api_hash = 'YOUR_API_HASH'
channel_username = 'your_channel_username_or_id'  # например: 'mychannel' или -1001234567890
client = TelegramClient('session_name', api_id, api_hash)
async def main():
    await client.start()
    entity = await client.get_entity(channel_username)
    offset_id = 0
    all_messages = []
    while True:
        history = await client(GetHistoryRequest(
            peer=entity,
            offset_id=offset_id,
            offset_date=None,
            add_offset=0,
            limit=100,
            max_id=0,
            min_id=0,
            hash=0
        ))
        if not history.messages:
            break
        messages = history.messages
        all_messages.extend(messages)
        offset_id = messages[-1].id
    # Сохраняем в файл
    with open("telegram_posts.txt", "w", encoding="utf-8") as f:
        for msg in all_messages:
            if msg.message:
                f.write(msg.message + "\n\n")
with client:
    client.loop.run_until_complete(main())