1. ytbList_player.py
- 기능: 유튜브 재생 목록에서 동영상을 다운로드하고 다운로드한 미디어를 재생.
- 설계 반영:
- 다운로드 기능: 서버리스 함수로 유튜브 재생목록 다운로드를 처리하며,
downloader.js
에서 이 기능을 클라이언트와 연결합니다. - 포맷 변환 기능: 서버리스 함수에서
yt-dlp
와FFmpeg
를 사용해 mp3, m4a, wav, ogg, flac 등의 포맷 변환을 구현합니다. - 재생 기능:
Player
컴포넌트를 통해 다운로드한 미디어 재생을 지원하고, 기본 플레이어와 미니 플레이어에 현재 재생 정보를 표시합니다.
- 다운로드 기능: 서버리스 함수로 유튜브 재생목록 다운로드를 처리하며,
- 상태: 반영 완료
2. database_manager.py
- 기능: 데이터베이스 관리, 계정 정보 및 다운로드된 파일 정보 저장.
- 설계 반영:
- 데이터베이스: 로컬 데이터베이스 대신 Firebase Firestore 또는 DynamoDB와 같은 클라우드 데이터베이스를 통해 재생목록, 계정 정보, 다운로드 기록을 관리하도록 설정.
- 계정 정보 및 데이터 저장:
database.js
에서 클라우드 데이터베이스와 통신해 필요한 데이터를 저장하고 불러옵니다.
- 상태: 반영 완료
3. main.py
- 기능: 애플리케이션의 메인 실행 파일로, 초기화 및 설정 관리.
- 설계 반영:
App.js
에서 전체 앱 구성 및 라우팅을 관리하며, 초기화 시 계정 연동 및 재생목록 불러오기 등을 실행하도록 설계되었습니다.
- 상태: 반영 완료
4. settings_view.py
- 기능: 사용자 설정(예: 다운로드 경로, API 키) 관리.
- 설계 반영:
SettingsPage.js
에서 다운로드 포맷 설정 및 API 키 설정 기능을 제공.- 클라우드 데이터베이스에 사용자 설정을 저장하여, 앱을 열 때 설정값을 불러옵니다.
- 상태: 반영 완료
5. playlist_viewer.py
- 기능: 재생 목록 관리 및 시각화.
- 설계 반영:
PlaylistPage.js
에서 유튜브 및 스포티파이 재생목록 통합 관리를 구현.- 재생 목록에서 다운로드 및 포맷 옵션을 제공하고, 현재 재생 중인 음악을 표시합니다.
- 상태: 반영 완료
6. album_viewer.py
- 기능: 앨범 정보와 트랙 목록 관리.
- 설계 반영:
AlbumPage.js
에서 스포티파이와 연동된 앨범 정보와 트랙 관리 기능을 제공합니다.
- 상태: 반영 완료
7. file_addmodal.py
- 기능: 로컬 파일 추가 또는 URL을 통한 파일 추가 기능 제공.
- 설계 반영:
FileUpload
컴포넌트에서 로컬 파일 추가 및 URL을 통해 파일을 추가하는 기능을 제공.
- 상태: 반영 완료
8. audio_waveform_visualizer.py
- 기능: 오디오 파형 시각화.
- 설계 반영:
WaveformVisualizer
컴포넌트를FullPlayer
에 포함시켜 오디오 파형을 실시간 시각화합니다.
- 상태: 반영 완료
9. 추가 기능 및 요구사항
-
자동 로그인 및 API 연동:
auth.js
를 통해 유튜브 및 스포티파이의 OAuth 인증을 수행하고, 계정 연동 후 재생목록을 자동으로 불러오도록 설계되었습니다.
-
다운로드 진행 상태 확인:
- 다운로드 요청 시 다운로드 진행 상태를 서버리스 함수와 연동하여 실시간으로 업데이트합니다.
-
다운로드 속도 개선:
- 서버리스 함수에서 멀티스레드 다운로드 또는 병렬 요청 방식을 적용하여 다운로드 속도를 개선할 수 있는 구조로 설계되었습니다.
-
재생 목록 통합 관리:
PlaylistPage.js
에서 유튜브 및 스포티파이 재생목록을 통합하고, 사용자가 한 화면에서 모든 재생목록을 관리할 수 있도록 구성되었습니다.