Привіт,
Чекаю пропозицію по термінах і вартості!
Повний опис в прикладеному файлі. Тут не поміщається за знаками.
- Потрібен скрипт на Pyton, який буде завантажувати канали повністю і розкладати відео по папках, якщо на каналі є Плейлисти.
- Скрипт повинен періодично проходити по каналах і відстежувати появу нових відео, при появі нового відео, скрипт повинен завантажувати нове відео. (скрипт не відстежує і не завантажує Shorts і Live трансляції)
- Скрипт в файлі done.xml повинен зберігати статистику про свою роботу (що, коли було завантажено)
А тепер детально про функціонал:
- В кореневій папці скрипта в файлі channels.xml ми додаємо канали, які хочемо відстежувати і завантажувати. Структура файлу:
Chanel_name; bitrate; subtitles;directory
сабачка+Ukrainian_fairy_tales;1080;так/ні;/home/video/
Chanel_name; - назва каналів, які відстежуємо
bitrate; - в якому бітрейті завантажуємо. Якщо стоїть 10180, а ролик знятий 720p, то завантажуємо в максимальному, який є, тобто в 720p. (для кожного каналу може бути свій бітрейд для завантаження)
subtitles; завантажувати субтитри чи ні. Якщо завантажуємо субтитри, то файл субтитрів називається тим же іменем, що і файл з відео, і кладемо файл в тій же папці, де лежить відео. (завантажуємо тільки англ / рус / укр субтитри) в кінці назви файлу додаємо локаль, наприклад субтитр1_ru
directory – кореневий шлях, де ми створюємо папку для каналу. В кореневій папці створюємо папку з назвою каналу, наприклад сабачка+Ukrainian_fairy_tales і туди кладемо всі відео по каналу. Для кожного каналу може бути своя коренева папка, тобто один канал може лежати в папці /home/video/, а інший канал може лежати в папці /medio/video/
2) Робота з Плейлистами. Якщо на каналі є плейлист Мультики для Дітей і другий плейлист Мультики для дорослих. Тоді в кореневій папці каналу сабачка+Ukrainian_fairy_tales. Створюється папка Мультики для Дітей і папка Мультики для дорослих, і відео лежать в папці відповідно до Плейлиста, до якого вони відносяться. Відео, які йдуть без плейлиста, лежать в кореневу папку каналу.
3) Відео файл створюється з таким же ім'ям, як називається ролик на каналі (не забудьте замінити спецсимволи в назві відео на знак тире – щоб не було конфлікту файлової системи і файли відкривалися)
В папку, де лежить відео, з таким же назвою, як і відео, створюється json файл
В json файлі зберігаємо інформацію про відео:
Date of download: дата і час коли ролик був завантажений скриптом
Date of publish: дата коли відео було опубліковано на YouTube
Video_name: Назва відео ролика
Playlist: Назва плейлиста, якщо відео відноситься до якогось плейлиста.
Link: повний шлях до відео в браузері на конкретне відео
Description: текстове поле під відео на Youtube з описом відео
- В кореневій папці скрипта. Має бути два файли: queue.xml і done.xml
Після запуску скрипта, скрипт пробігає по всім папкам каналів, створює тимчасовий технічний json файлик зі списком всіх відео, що вже завантажені на основі всіх json файликів, які описані в пункті 3. І потім заходить на кожен канал в інтернеті і дивиться, чи з'явилися нові відео. І всі нові відео він кладе в файлик queue.xml в наступному форматі:
Chanel_name;video_name;playlist;Chanel_web_link
Назва каналу: сабачка+Ukrainian_fairy_tales
Назва відео: Ну погоди серія№ 3
Playlist; Назва плей листа, якщо відео лежить в плей листі
Посилання на відео: https://www.youtube.com/watch?v=SbJAv0jfL4Q&list=RDSbJAv0jfL4Q&start_radio