Для того чтобы скопировать альбом из одного чата и отправить его другому пользователю с использованием библиотеки aiogram, можно воспользоваться методом `send_media_group` или `send_copy_message`. Но, увы, в стандартной версии aiogram 3 метод `send_copy_message` действительно отправляет только первое фото.
Однако, можно воспользоваться несколькими подходами для отправки альбома с текстом каждому пользователю.
Первый подход - разделить отправку фотографий и отправку текста на два отдельных сообщения.
```python
async def send_album_with_text(user_id: int, photo_urls: List[str], captions: List[str]):
for i in range(len(photo_urls)):
if i == 0:
message = await bot.send_photo(user_id, photo_urls[i], caption=captions[i])
else:
await bot.send_photo(user_id, photo_urls[i], reply_to_message_id=message.message_id, caption=captions[i])
```
В примере выше мы создаем отдельное сообщение с первым фото и текстом и сохраняем его в переменной `message`. Затем отправляем остальные фото с текстом, указывая `reply_to_message_id` равным `message.message_id`.
Второй подход - использовать метод `send_media_group`. В этом случае необходимо подготовить список `InputMediaPhoto` для каждого фото и объединить их в атрибут `media` в соответствующем порядке.
```python
async def send_album_with_text(user_id: int, photo_urls: List[str], captions: List[str]):
media = [InputMediaPhoto(photo_url, caption=caption) for photo_url, caption in zip(photo_urls, captions)]
await bot.send_media_group(user_id, media)
```
В данном примере мы создаем список `media` с помощью генератора списков, где каждому фото-URL соответствует `InputMediaPhoto` с соответствующим заголовком. Затем мы передаем данный список в метод `send_media_group` для отправки альбома.
В обоих случаях, аргумент `user_id` - это ID пользователя, которому вы хотите отправить альбом, а аргументы `photo_urls` и `captions` - это списки URL-адресов фотографий и соответствующих текстовых подписей. Вызов данной функции отправит альбом с фотографиями и текстом пользователю.