Compare commits
3 Commits
whisper-cp
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 9e3ba72d0a | |||
|
|
e823388753 | ||
| 0ce1ec18c3 |
3
.gitignore
vendored
3
.gitignore
vendored
@@ -30,7 +30,8 @@
|
||||
*.tar.bz2
|
||||
*.tgz
|
||||
|
||||
*.md
|
||||
/markdown/*.md
|
||||
/content/*.md
|
||||
|
||||
# 其他格式的媒体文件
|
||||
/.venv/
|
||||
|
||||
223
README.md
Normal file
223
README.md
Normal file
@@ -0,0 +1,223 @@
|
||||
# Songyi Course Content Scraper & Transcriber
|
||||
|
||||
A Python-based automated system for scraping, downloading, and transcribing online course content from the Bandu API. The system converts course materials into Hugo-compatible markdown files with audio/video transcriptions.
|
||||
|
||||
## Features
|
||||
|
||||
- **Course Data Management**: Fetches and stores course metadata in SQLite/PostgreSQL databases
|
||||
- **Multi-threaded Downloads**: Efficiently downloads course materials (audio, video, images, text) using aria2c
|
||||
- **Audio Processing**: Automatically combines multiple audio segments into single MP3 files using FFmpeg
|
||||
- **Speech-to-Text**: Transcribes audio/video content using FunASR/SenseVoice models
|
||||
- **Hugo Integration**: Generates markdown files with proper frontmatter for Hugo static sites
|
||||
- **Smart Caching**: Stores transcriptions in database to avoid redundant processing
|
||||
|
||||
## Prerequisites
|
||||
|
||||
### System Dependencies
|
||||
- Python 3.12+
|
||||
- FFmpeg
|
||||
- aria2c
|
||||
|
||||
### Python Dependencies
|
||||
See [requirements.txt](requirements.txt) for the full list. Key packages include:
|
||||
- requests
|
||||
- gradio_client
|
||||
- funasr
|
||||
- librosa
|
||||
- moviepy
|
||||
- pymongo
|
||||
- psycopg2-binary
|
||||
|
||||
## Installation
|
||||
|
||||
> use this command to install pytorch cpu
|
||||
> ```bash
|
||||
> uv pip install torch==2.3.0 torchvision==0.18.0 torchaudio==2.3.0 --index-url https://download.pytorch.org/whl/cpu
|
||||
> ```
|
||||
|
||||
1. Clone the repository:
|
||||
```bash
|
||||
git clone <repository-url>
|
||||
cd songyi
|
||||
```
|
||||
|
||||
2. Create and activate virtual environment:
|
||||
```bash
|
||||
python -m venv .venv
|
||||
source .venv/bin/activate # On Windows: .venv\Scripts\activate
|
||||
```
|
||||
|
||||
3. Install Python dependencies:
|
||||
```bash
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
4. Install system dependencies:
|
||||
```bash
|
||||
# Ubuntu/Debian
|
||||
sudo apt-get install ffmpeg aria2
|
||||
|
||||
# macOS
|
||||
brew install ffmpeg aria2
|
||||
```
|
||||
|
||||
5. Create configuration file:
|
||||
```bash
|
||||
cp config.ini.example config.ini
|
||||
# Edit config.ini with your settings
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
Create a `config.ini` file with the following structure:
|
||||
|
||||
```ini
|
||||
[DEFAULT]
|
||||
authorization_token = your_bearer_token_here
|
||||
limit = 100
|
||||
offset = 0
|
||||
sort = newest-first
|
||||
max_download_threads = 5
|
||||
max_retry_attempts = 3
|
||||
download_id = 1
|
||||
|
||||
[POSTGRES]
|
||||
dbname = your_db_name
|
||||
user = your_username
|
||||
password = your_password
|
||||
host = localhost
|
||||
port = 5432
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
### Run Complete Pipeline
|
||||
|
||||
Execute the entire workflow (fetch courses, download content, generate markdown):
|
||||
|
||||
```bash
|
||||
python main.py
|
||||
```
|
||||
|
||||
### Individual Components
|
||||
|
||||
**Fetch course list only:**
|
||||
```bash
|
||||
python course_list_info_parser.py
|
||||
```
|
||||
|
||||
**Download course content only:**
|
||||
```bash
|
||||
python course_content_parser.py
|
||||
```
|
||||
|
||||
**Generate markdown files only:**
|
||||
```bash
|
||||
python markdown_transcribe_hugo.py
|
||||
```
|
||||
|
||||
## Project Structure
|
||||
|
||||
```
|
||||
songyi/
|
||||
├── main.py # Main orchestration script
|
||||
├── course_list_info_parser.py # Fetches course metadata
|
||||
├── course_content_parser.py # Downloads course materials
|
||||
├── markdown_transcribe_hugo.py # Generates Hugo markdown
|
||||
├── transcribe_media.py # Audio/video transcription
|
||||
├── headers.py # HTTP headers configuration
|
||||
├── logging_config.py # Logging setup
|
||||
├── config.ini # Configuration file (not in repo)
|
||||
├── courses.db # SQLite database
|
||||
├── content/ # Generated Hugo markdown files
|
||||
├── course/ # Downloaded course materials
|
||||
│ └── {course_id}/
|
||||
│ ├── mp3/ # Audio files
|
||||
│ ├── mp4/ # Video files
|
||||
│ └── ...
|
||||
└── json/ # API response cache
|
||||
└── {course_id}.json
|
||||
```
|
||||
|
||||
## Workflow
|
||||
|
||||
1. **Fetch Courses**: Retrieves course list from API and stores in database
|
||||
2. **Download Content**: Downloads all course materials (audio, video, images, text)
|
||||
3. **Process Audio**: Combines audio segments and transcribes them
|
||||
4. **Generate Markdown**: Creates Hugo-compatible markdown files with:
|
||||
- Frontmatter (date, title)
|
||||
- Text content
|
||||
- Images with URLs
|
||||
- Audio transcriptions
|
||||
|
||||
## Database Schema
|
||||
|
||||
### courses
|
||||
- `id` (INTEGER PRIMARY KEY)
|
||||
- `title` (TEXT)
|
||||
- `description` (TEXT)
|
||||
|
||||
### contents
|
||||
- `id` (INTEGER PRIMARY KEY)
|
||||
- `course_id` (INTEGER)
|
||||
- `content` (TEXT)
|
||||
- `category` (TEXT)
|
||||
- `audio_order` (INTEGER)
|
||||
- `attachment_url` (TEXT)
|
||||
- `mime_type` (TEXT)
|
||||
|
||||
### audio_transcriptions
|
||||
- `id` (INTEGER PRIMARY KEY AUTOINCREMENT)
|
||||
- `course_id` (INTEGER)
|
||||
- `filename` (TEXT)
|
||||
- `text` (TEXT)
|
||||
- `UNIQUE(course_id, filename)`
|
||||
|
||||
## Features in Detail
|
||||
|
||||
### Multi-threaded Downloads
|
||||
Uses thread pools to download multiple files concurrently with configurable retry logic.
|
||||
|
||||
### Audio Merging
|
||||
Automatically detects multiple audio segments and merges them in order using FFmpeg.
|
||||
|
||||
### Transcription Caching
|
||||
Stores transcription results in the database to avoid re-processing the same audio files.
|
||||
|
||||
### Hugo Output Format
|
||||
Generates markdown files with proper Hugo frontmatter:
|
||||
```markdown
|
||||
+++
|
||||
date = '2025-10-08'
|
||||
draft = false
|
||||
title = 'Course Title'
|
||||
+++
|
||||
|
||||
Course content here...
|
||||
```
|
||||
|
||||
## Error Handling
|
||||
|
||||
- Automatic retry for failed downloads (configurable)
|
||||
- Skips existing files to avoid redundant downloads
|
||||
- Logs all operations for debugging
|
||||
- Graceful handling of missing or corrupted files
|
||||
|
||||
## Logging
|
||||
|
||||
Logs are configured through [logging_config.py](logging_config.py). Check console output for progress and error messages.
|
||||
|
||||
## Contributing
|
||||
|
||||
This is a personal project for archiving online course content. Feel free to fork and adapt for your own needs.
|
||||
|
||||
## License
|
||||
|
||||
[Add your license here]
|
||||
|
||||
## Notes
|
||||
|
||||
- Ensure you have proper authorization to download and process the course content
|
||||
- The system is designed for the Bandu API structure; modifications needed for other sources
|
||||
- Transcription quality depends on the FunASR/SenseVoice model configuration
|
||||
- Large courses may require significant disk space and processing time
|
||||
BIN
courses.db
BIN
courses.db
Binary file not shown.
32
json/745.json
Normal file
32
json/745.json
Normal file
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"ts": 1764605503269,
|
||||
"data": [
|
||||
{
|
||||
"id": 14900,
|
||||
"course_id": 745,
|
||||
"content": "7d05ce95-2467-4744-b317-8eac65568b93.m3u8",
|
||||
"category": "video",
|
||||
"attachment_id": "7d05ce95-2467-4744-b317-8eac65568b93",
|
||||
"order": 0,
|
||||
"duration": 4308320,
|
||||
"created_at": "2025-11-30T13:01:32.073Z",
|
||||
"updated_at": "2025-11-30T13:03:19.25Z",
|
||||
"attachment": {
|
||||
"id": 102535,
|
||||
"attachment_id": "7d05ce95-2467-4744-b317-8eac65568b93",
|
||||
"name": "7d05ce95-2467-4744-b317-8eac65568b93.m3u8",
|
||||
"thumb": "",
|
||||
"raw": "https://pili-vod.songy.info/7d05ce95-2467-4744-b317-8eac65568b93.m3u8",
|
||||
"size": 0,
|
||||
"duration": 4308320,
|
||||
"mime_type": "application/x-mpegurl",
|
||||
"location": "qiniu",
|
||||
"created_at": "2025-11-30T13:01:32.07Z",
|
||||
"updated_at": "2025-11-30T13:03:19.246Z",
|
||||
"url": "https://pili-vod.songy.info/7d05ce95-2467-4744-b317-8eac65568b93.m3u8",
|
||||
"raw_url": "https://pili-vod.songy.info/7d05ce95-2467-4744-b317-8eac65568b93.m3u8",
|
||||
"thumb_url": "https://pili-vod.songy.info/7d05ce95-2467-4744-b317-8eac65568b93.m3u8"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
542
json/746.json
Normal file
542
json/746.json
Normal file
@@ -0,0 +1,542 @@
|
||||
{
|
||||
"ts": 1766844331645,
|
||||
"data": [
|
||||
{
|
||||
"id": 14901,
|
||||
"course_id": 746,
|
||||
"content": "4b2009f1-f864-44bd-9258-0af1aa576d28.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "4b2009f1-f864-44bd-9258-0af1aa576d28",
|
||||
"order": 1,
|
||||
"duration": 46990,
|
||||
"created_at": "2025-12-06T09:30:52.613Z",
|
||||
"updated_at": "2025-12-06T09:51:43.304Z",
|
||||
"attachment": {
|
||||
"id": 102796,
|
||||
"attachment_id": "4b2009f1-f864-44bd-9258-0af1aa576d28",
|
||||
"name": "4b2009f1-f864-44bd-9258-0af1aa576d28.mp3",
|
||||
"thumb": "",
|
||||
"raw": "4b2009f1-f864-44bd-9258-0af1aa576d28.mp3",
|
||||
"size": 375981,
|
||||
"duration": 46990,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-06T09:30:52.56Z",
|
||||
"updated_at": "2025-12-06T09:51:43.299Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/4b2009f1-f864-44bd-9258-0af1aa576d28.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/4b2009f1-f864-44bd-9258-0af1aa576d28.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/4b2009f1-f864-44bd-9258-0af1aa576d28.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14908,
|
||||
"course_id": 746,
|
||||
"content": "3d532a1b-3721-46a2-9107-9e7502195464.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "3d532a1b-3721-46a2-9107-9e7502195464",
|
||||
"order": 8,
|
||||
"duration": 54380,
|
||||
"created_at": "2025-12-06T09:30:52.613Z",
|
||||
"updated_at": "2025-12-06T09:51:43.696Z",
|
||||
"attachment": {
|
||||
"id": 102802,
|
||||
"attachment_id": "3d532a1b-3721-46a2-9107-9e7502195464",
|
||||
"name": "3d532a1b-3721-46a2-9107-9e7502195464.mp3",
|
||||
"thumb": "",
|
||||
"raw": "3d532a1b-3721-46a2-9107-9e7502195464.mp3",
|
||||
"size": 435117,
|
||||
"duration": 54380,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-06T09:30:52.573Z",
|
||||
"updated_at": "2025-12-06T09:51:43.692Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/3d532a1b-3721-46a2-9107-9e7502195464.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/3d532a1b-3721-46a2-9107-9e7502195464.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/3d532a1b-3721-46a2-9107-9e7502195464.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14909,
|
||||
"course_id": 746,
|
||||
"content": "b4ee1427-dbfd-48c7-8a12-853d2cc34e7d.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "b4ee1427-dbfd-48c7-8a12-853d2cc34e7d",
|
||||
"order": 9,
|
||||
"duration": 24360,
|
||||
"created_at": "2025-12-06T09:30:52.613Z",
|
||||
"updated_at": "2025-12-06T09:51:43.987Z",
|
||||
"attachment": {
|
||||
"id": 102803,
|
||||
"attachment_id": "b4ee1427-dbfd-48c7-8a12-853d2cc34e7d",
|
||||
"name": "b4ee1427-dbfd-48c7-8a12-853d2cc34e7d.mp3",
|
||||
"thumb": "",
|
||||
"raw": "b4ee1427-dbfd-48c7-8a12-853d2cc34e7d.mp3",
|
||||
"size": 194925,
|
||||
"duration": 24360,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-06T09:30:52.576Z",
|
||||
"updated_at": "2025-12-06T09:51:43.983Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/b4ee1427-dbfd-48c7-8a12-853d2cc34e7d.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/b4ee1427-dbfd-48c7-8a12-853d2cc34e7d.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/b4ee1427-dbfd-48c7-8a12-853d2cc34e7d.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14910,
|
||||
"course_id": 746,
|
||||
"content": "一定要保证自己最初用来投资的钱,是“有合法收入来源证明的钱”",
|
||||
"category": "text",
|
||||
"attachment_id": "",
|
||||
"order": 10,
|
||||
"duration": 1000000000,
|
||||
"created_at": "2025-12-06T09:30:52.613Z",
|
||||
"updated_at": "2025-12-06T09:30:52.613Z",
|
||||
"attachment": null
|
||||
},
|
||||
{
|
||||
"id": 14911,
|
||||
"course_id": 746,
|
||||
"content": "5ded577b-42c0-45de-9bc4-5c190c2e3ad0.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "5ded577b-42c0-45de-9bc4-5c190c2e3ad0",
|
||||
"order": 11,
|
||||
"duration": 38280,
|
||||
"created_at": "2025-12-06T09:30:52.613Z",
|
||||
"updated_at": "2025-12-06T09:51:44.273Z",
|
||||
"attachment": {
|
||||
"id": 102804,
|
||||
"attachment_id": "5ded577b-42c0-45de-9bc4-5c190c2e3ad0",
|
||||
"name": "5ded577b-42c0-45de-9bc4-5c190c2e3ad0.mp3",
|
||||
"thumb": "",
|
||||
"raw": "5ded577b-42c0-45de-9bc4-5c190c2e3ad0.mp3",
|
||||
"size": 306285,
|
||||
"duration": 38280,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-06T09:30:52.578Z",
|
||||
"updated_at": "2025-12-06T09:51:44.268Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/5ded577b-42c0-45de-9bc4-5c190c2e3ad0.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/5ded577b-42c0-45de-9bc4-5c190c2e3ad0.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/5ded577b-42c0-45de-9bc4-5c190c2e3ad0.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14912,
|
||||
"course_id": 746,
|
||||
"content": "7564bf55-cce3-49dc-9cda-454d555f23d8.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "7564bf55-cce3-49dc-9cda-454d555f23d8",
|
||||
"order": 12,
|
||||
"duration": 29420,
|
||||
"created_at": "2025-12-06T09:30:52.613Z",
|
||||
"updated_at": "2025-12-06T09:51:44.79Z",
|
||||
"attachment": {
|
||||
"id": 102805,
|
||||
"attachment_id": "7564bf55-cce3-49dc-9cda-454d555f23d8",
|
||||
"name": "7564bf55-cce3-49dc-9cda-454d555f23d8.mp3",
|
||||
"thumb": "",
|
||||
"raw": "7564bf55-cce3-49dc-9cda-454d555f23d8.mp3",
|
||||
"size": 235437,
|
||||
"duration": 29420,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-06T09:30:52.58Z",
|
||||
"updated_at": "2025-12-06T09:51:44.786Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/7564bf55-cce3-49dc-9cda-454d555f23d8.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/7564bf55-cce3-49dc-9cda-454d555f23d8.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/7564bf55-cce3-49dc-9cda-454d555f23d8.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14913,
|
||||
"course_id": 746,
|
||||
"content": "9a06f935-fea0-4671-a686-e6518b128813.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "9a06f935-fea0-4671-a686-e6518b128813",
|
||||
"order": 13,
|
||||
"duration": 53500,
|
||||
"created_at": "2025-12-06T09:30:52.613Z",
|
||||
"updated_at": "2025-12-06T09:51:45.155Z",
|
||||
"attachment": {
|
||||
"id": 102806,
|
||||
"attachment_id": "9a06f935-fea0-4671-a686-e6518b128813",
|
||||
"name": "9a06f935-fea0-4671-a686-e6518b128813.mp3",
|
||||
"thumb": "",
|
||||
"raw": "9a06f935-fea0-4671-a686-e6518b128813.mp3",
|
||||
"size": 428013,
|
||||
"duration": 53500,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-06T09:30:52.582Z",
|
||||
"updated_at": "2025-12-06T09:51:45.15Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/9a06f935-fea0-4671-a686-e6518b128813.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/9a06f935-fea0-4671-a686-e6518b128813.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/9a06f935-fea0-4671-a686-e6518b128813.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14914,
|
||||
"course_id": 746,
|
||||
"content": "a4d14d9f-a3d8-4d21-b3fa-80aaa62043d3.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "a4d14d9f-a3d8-4d21-b3fa-80aaa62043d3",
|
||||
"order": 14,
|
||||
"duration": 56570,
|
||||
"created_at": "2025-12-06T09:30:52.613Z",
|
||||
"updated_at": "2025-12-06T09:51:45.431Z",
|
||||
"attachment": {
|
||||
"id": 102807,
|
||||
"attachment_id": "a4d14d9f-a3d8-4d21-b3fa-80aaa62043d3",
|
||||
"name": "a4d14d9f-a3d8-4d21-b3fa-80aaa62043d3.mp3",
|
||||
"thumb": "",
|
||||
"raw": "a4d14d9f-a3d8-4d21-b3fa-80aaa62043d3.mp3",
|
||||
"size": 452589,
|
||||
"duration": 56570,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-06T09:30:52.584Z",
|
||||
"updated_at": "2025-12-06T09:51:45.427Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/a4d14d9f-a3d8-4d21-b3fa-80aaa62043d3.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/a4d14d9f-a3d8-4d21-b3fa-80aaa62043d3.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/a4d14d9f-a3d8-4d21-b3fa-80aaa62043d3.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14915,
|
||||
"course_id": 746,
|
||||
"content": "dbedf311-0c2c-43eb-8a05-81108bcf263a.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "dbedf311-0c2c-43eb-8a05-81108bcf263a",
|
||||
"order": 15,
|
||||
"duration": 53900,
|
||||
"created_at": "2025-12-06T09:30:52.613Z",
|
||||
"updated_at": "2025-12-06T09:51:45.948Z",
|
||||
"attachment": {
|
||||
"id": 102808,
|
||||
"attachment_id": "dbedf311-0c2c-43eb-8a05-81108bcf263a",
|
||||
"name": "dbedf311-0c2c-43eb-8a05-81108bcf263a.mp3",
|
||||
"thumb": "",
|
||||
"raw": "dbedf311-0c2c-43eb-8a05-81108bcf263a.mp3",
|
||||
"size": 431277,
|
||||
"duration": 53900,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-06T09:30:52.587Z",
|
||||
"updated_at": "2025-12-06T09:51:45.944Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/dbedf311-0c2c-43eb-8a05-81108bcf263a.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/dbedf311-0c2c-43eb-8a05-81108bcf263a.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/dbedf311-0c2c-43eb-8a05-81108bcf263a.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14916,
|
||||
"course_id": 746,
|
||||
"content": "449aac33-7e75-41c3-ae8a-2613dae23b0a.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "449aac33-7e75-41c3-ae8a-2613dae23b0a",
|
||||
"order": 16,
|
||||
"duration": 41640,
|
||||
"created_at": "2025-12-06T09:30:52.613Z",
|
||||
"updated_at": "2025-12-06T09:51:46.233Z",
|
||||
"attachment": {
|
||||
"id": 102809,
|
||||
"attachment_id": "449aac33-7e75-41c3-ae8a-2613dae23b0a",
|
||||
"name": "449aac33-7e75-41c3-ae8a-2613dae23b0a.mp3",
|
||||
"thumb": "",
|
||||
"raw": "449aac33-7e75-41c3-ae8a-2613dae23b0a.mp3",
|
||||
"size": 333165,
|
||||
"duration": 41640,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-06T09:30:52.589Z",
|
||||
"updated_at": "2025-12-06T09:51:46.228Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/449aac33-7e75-41c3-ae8a-2613dae23b0a.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/449aac33-7e75-41c3-ae8a-2613dae23b0a.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/449aac33-7e75-41c3-ae8a-2613dae23b0a.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14917,
|
||||
"course_id": 746,
|
||||
"content": "最初的钱交过个人所得税没有?",
|
||||
"category": "text",
|
||||
"attachment_id": "",
|
||||
"order": 17,
|
||||
"duration": 1000000000,
|
||||
"created_at": "2025-12-06T09:30:52.613Z",
|
||||
"updated_at": "2025-12-06T09:30:52.613Z",
|
||||
"attachment": null
|
||||
},
|
||||
{
|
||||
"id": 14918,
|
||||
"course_id": 746,
|
||||
"content": "faa4ff65-9fd7-47db-b4f4-7c681e74bb0f.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "faa4ff65-9fd7-47db-b4f4-7c681e74bb0f",
|
||||
"order": 18,
|
||||
"duration": 54620,
|
||||
"created_at": "2025-12-06T09:30:52.613Z",
|
||||
"updated_at": "2025-12-06T09:51:46.525Z",
|
||||
"attachment": {
|
||||
"id": 102810,
|
||||
"attachment_id": "faa4ff65-9fd7-47db-b4f4-7c681e74bb0f",
|
||||
"name": "faa4ff65-9fd7-47db-b4f4-7c681e74bb0f.mp3",
|
||||
"thumb": "",
|
||||
"raw": "faa4ff65-9fd7-47db-b4f4-7c681e74bb0f.mp3",
|
||||
"size": 437037,
|
||||
"duration": 54620,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-06T09:30:52.591Z",
|
||||
"updated_at": "2025-12-06T09:51:46.521Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/faa4ff65-9fd7-47db-b4f4-7c681e74bb0f.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/faa4ff65-9fd7-47db-b4f4-7c681e74bb0f.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/faa4ff65-9fd7-47db-b4f4-7c681e74bb0f.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14919,
|
||||
"course_id": 746,
|
||||
"content": "172cd040-4095-48d2-8fd5-6aa41af4fdbc.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "172cd040-4095-48d2-8fd5-6aa41af4fdbc",
|
||||
"order": 19,
|
||||
"duration": 39430,
|
||||
"created_at": "2025-12-06T09:30:52.613Z",
|
||||
"updated_at": "2025-12-06T09:51:46.829Z",
|
||||
"attachment": {
|
||||
"id": 102811,
|
||||
"attachment_id": "172cd040-4095-48d2-8fd5-6aa41af4fdbc",
|
||||
"name": "172cd040-4095-48d2-8fd5-6aa41af4fdbc.mp3",
|
||||
"thumb": "",
|
||||
"raw": "172cd040-4095-48d2-8fd5-6aa41af4fdbc.mp3",
|
||||
"size": 315501,
|
||||
"duration": 39430,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-06T09:30:52.593Z",
|
||||
"updated_at": "2025-12-06T09:51:46.825Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/172cd040-4095-48d2-8fd5-6aa41af4fdbc.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/172cd040-4095-48d2-8fd5-6aa41af4fdbc.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/172cd040-4095-48d2-8fd5-6aa41af4fdbc.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14920,
|
||||
"course_id": 746,
|
||||
"content": "e488d285-f633-44f7-a989-ac261b86611b.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "e488d285-f633-44f7-a989-ac261b86611b",
|
||||
"order": 20,
|
||||
"duration": 60050,
|
||||
"created_at": "2025-12-06T09:30:52.613Z",
|
||||
"updated_at": "2025-12-06T09:51:47.153Z",
|
||||
"attachment": {
|
||||
"id": 102812,
|
||||
"attachment_id": "e488d285-f633-44f7-a989-ac261b86611b",
|
||||
"name": "e488d285-f633-44f7-a989-ac261b86611b.mp3",
|
||||
"thumb": "",
|
||||
"raw": "e488d285-f633-44f7-a989-ac261b86611b.mp3",
|
||||
"size": 480429,
|
||||
"duration": 60050,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-06T09:30:52.596Z",
|
||||
"updated_at": "2025-12-06T09:51:47.148Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/e488d285-f633-44f7-a989-ac261b86611b.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/e488d285-f633-44f7-a989-ac261b86611b.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/e488d285-f633-44f7-a989-ac261b86611b.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14921,
|
||||
"course_id": 746,
|
||||
"content": "d6ec4eb9-c7fe-450f-bba5-1aa30484f143.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "d6ec4eb9-c7fe-450f-bba5-1aa30484f143",
|
||||
"order": 21,
|
||||
"duration": 56090,
|
||||
"created_at": "2025-12-06T09:30:52.613Z",
|
||||
"updated_at": "2025-12-06T09:51:47.442Z",
|
||||
"attachment": {
|
||||
"id": 102813,
|
||||
"attachment_id": "d6ec4eb9-c7fe-450f-bba5-1aa30484f143",
|
||||
"name": "d6ec4eb9-c7fe-450f-bba5-1aa30484f143.mp3",
|
||||
"thumb": "",
|
||||
"raw": "d6ec4eb9-c7fe-450f-bba5-1aa30484f143.mp3",
|
||||
"size": 448749,
|
||||
"duration": 56090,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-06T09:30:52.598Z",
|
||||
"updated_at": "2025-12-06T09:51:47.438Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/d6ec4eb9-c7fe-450f-bba5-1aa30484f143.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/d6ec4eb9-c7fe-450f-bba5-1aa30484f143.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/d6ec4eb9-c7fe-450f-bba5-1aa30484f143.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14922,
|
||||
"course_id": 746,
|
||||
"content": "bd20eadf-5949-41a8-8aa8-51490048db9c.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "bd20eadf-5949-41a8-8aa8-51490048db9c",
|
||||
"order": 22,
|
||||
"duration": 45380,
|
||||
"created_at": "2025-12-06T09:30:52.613Z",
|
||||
"updated_at": "2025-12-06T09:51:47.789Z",
|
||||
"attachment": {
|
||||
"id": 102814,
|
||||
"attachment_id": "bd20eadf-5949-41a8-8aa8-51490048db9c",
|
||||
"name": "bd20eadf-5949-41a8-8aa8-51490048db9c.mp3",
|
||||
"thumb": "",
|
||||
"raw": "bd20eadf-5949-41a8-8aa8-51490048db9c.mp3",
|
||||
"size": 363117,
|
||||
"duration": 45380,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-06T09:30:52.6Z",
|
||||
"updated_at": "2025-12-06T09:51:47.784Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/bd20eadf-5949-41a8-8aa8-51490048db9c.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/bd20eadf-5949-41a8-8aa8-51490048db9c.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/bd20eadf-5949-41a8-8aa8-51490048db9c.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14923,
|
||||
"course_id": 746,
|
||||
"content": "e6e21287-a9cb-4c2d-8711-6b461c74b25c.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "e6e21287-a9cb-4c2d-8711-6b461c74b25c",
|
||||
"order": 23,
|
||||
"duration": 56810,
|
||||
"created_at": "2025-12-06T09:30:52.613Z",
|
||||
"updated_at": "2025-12-06T09:51:48.079Z",
|
||||
"attachment": {
|
||||
"id": 102815,
|
||||
"attachment_id": "e6e21287-a9cb-4c2d-8711-6b461c74b25c",
|
||||
"name": "e6e21287-a9cb-4c2d-8711-6b461c74b25c.mp3",
|
||||
"thumb": "",
|
||||
"raw": "e6e21287-a9cb-4c2d-8711-6b461c74b25c.mp3",
|
||||
"size": 454509,
|
||||
"duration": 56810,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-06T09:30:52.602Z",
|
||||
"updated_at": "2025-12-06T09:51:48.074Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/e6e21287-a9cb-4c2d-8711-6b461c74b25c.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/e6e21287-a9cb-4c2d-8711-6b461c74b25c.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/e6e21287-a9cb-4c2d-8711-6b461c74b25c.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14924,
|
||||
"course_id": 746,
|
||||
"content": "8ec04ff8-eeff-4f6d-bf63-ab4f6e4f6dfc.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "8ec04ff8-eeff-4f6d-bf63-ab4f6e4f6dfc",
|
||||
"order": 24,
|
||||
"duration": 37560,
|
||||
"created_at": "2025-12-06T09:30:52.613Z",
|
||||
"updated_at": "2025-12-06T09:51:48.325Z",
|
||||
"attachment": {
|
||||
"id": 102816,
|
||||
"attachment_id": "8ec04ff8-eeff-4f6d-bf63-ab4f6e4f6dfc",
|
||||
"name": "8ec04ff8-eeff-4f6d-bf63-ab4f6e4f6dfc.mp3",
|
||||
"thumb": "",
|
||||
"raw": "8ec04ff8-eeff-4f6d-bf63-ab4f6e4f6dfc.mp3",
|
||||
"size": 300525,
|
||||
"duration": 37560,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-06T09:30:52.604Z",
|
||||
"updated_at": "2025-12-06T09:51:48.321Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/8ec04ff8-eeff-4f6d-bf63-ab4f6e4f6dfc.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/8ec04ff8-eeff-4f6d-bf63-ab4f6e4f6dfc.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/8ec04ff8-eeff-4f6d-bf63-ab4f6e4f6dfc.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14925,
|
||||
"course_id": 746,
|
||||
"content": "db447b3d-fb4a-4ec1-b830-196c920d8534.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "db447b3d-fb4a-4ec1-b830-196c920d8534",
|
||||
"order": 25,
|
||||
"duration": 47260,
|
||||
"created_at": "2025-12-06T09:30:52.613Z",
|
||||
"updated_at": "2025-12-06T09:51:48.614Z",
|
||||
"attachment": {
|
||||
"id": 102817,
|
||||
"attachment_id": "db447b3d-fb4a-4ec1-b830-196c920d8534",
|
||||
"name": "db447b3d-fb4a-4ec1-b830-196c920d8534.mp3",
|
||||
"thumb": "",
|
||||
"raw": "db447b3d-fb4a-4ec1-b830-196c920d8534.mp3",
|
||||
"size": 378093,
|
||||
"duration": 47260,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-06T09:30:52.606Z",
|
||||
"updated_at": "2025-12-06T09:51:48.609Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/db447b3d-fb4a-4ec1-b830-196c920d8534.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/db447b3d-fb4a-4ec1-b830-196c920d8534.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/db447b3d-fb4a-4ec1-b830-196c920d8534.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14926,
|
||||
"course_id": 746,
|
||||
"content": "ef79fef3-127f-4293-b4f7-d129c25e0eed.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "ef79fef3-127f-4293-b4f7-d129c25e0eed",
|
||||
"order": 26,
|
||||
"duration": 37320,
|
||||
"created_at": "2025-12-06T09:30:52.613Z",
|
||||
"updated_at": "2025-12-06T09:51:48.873Z",
|
||||
"attachment": {
|
||||
"id": 102818,
|
||||
"attachment_id": "ef79fef3-127f-4293-b4f7-d129c25e0eed",
|
||||
"name": "ef79fef3-127f-4293-b4f7-d129c25e0eed.mp3",
|
||||
"thumb": "",
|
||||
"raw": "ef79fef3-127f-4293-b4f7-d129c25e0eed.mp3",
|
||||
"size": 298605,
|
||||
"duration": 37320,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-06T09:30:52.609Z",
|
||||
"updated_at": "2025-12-06T09:51:48.869Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/ef79fef3-127f-4293-b4f7-d129c25e0eed.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/ef79fef3-127f-4293-b4f7-d129c25e0eed.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/ef79fef3-127f-4293-b4f7-d129c25e0eed.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14927,
|
||||
"course_id": 746,
|
||||
"content": "72ddb22e-dce0-4a76-9885-5f5e514a0622.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "72ddb22e-dce0-4a76-9885-5f5e514a0622",
|
||||
"order": 27,
|
||||
"duration": 30140,
|
||||
"created_at": "2025-12-06T09:30:52.613Z",
|
||||
"updated_at": "2025-12-06T09:51:49.14Z",
|
||||
"attachment": {
|
||||
"id": 102819,
|
||||
"attachment_id": "72ddb22e-dce0-4a76-9885-5f5e514a0622",
|
||||
"name": "72ddb22e-dce0-4a76-9885-5f5e514a0622.mp3",
|
||||
"thumb": "",
|
||||
"raw": "72ddb22e-dce0-4a76-9885-5f5e514a0622.mp3",
|
||||
"size": 241197,
|
||||
"duration": 30140,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-06T09:30:52.611Z",
|
||||
"updated_at": "2025-12-06T09:51:49.136Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/72ddb22e-dce0-4a76-9885-5f5e514a0622.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/72ddb22e-dce0-4a76-9885-5f5e514a0622.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/72ddb22e-dce0-4a76-9885-5f5e514a0622.mp3"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
791
json/747.json
Normal file
791
json/747.json
Normal file
@@ -0,0 +1,791 @@
|
||||
{
|
||||
"ts": 1766844331914,
|
||||
"data": [
|
||||
{
|
||||
"id": 14928,
|
||||
"course_id": 747,
|
||||
"content": "4f879d3a-e31a-43a8-a378-e771faec0251.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "4f879d3a-e31a-43a8-a378-e771faec0251",
|
||||
"order": 1,
|
||||
"duration": 41110,
|
||||
"created_at": "2025-12-17T07:28:46.539Z",
|
||||
"updated_at": "2025-12-17T07:29:31.537Z",
|
||||
"attachment": {
|
||||
"id": 103182,
|
||||
"attachment_id": "4f879d3a-e31a-43a8-a378-e771faec0251",
|
||||
"name": "4f879d3a-e31a-43a8-a378-e771faec0251.mp3",
|
||||
"thumb": "",
|
||||
"raw": "4f879d3a-e31a-43a8-a378-e771faec0251.mp3",
|
||||
"size": 328941,
|
||||
"duration": 41110,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-17T07:28:46.479Z",
|
||||
"updated_at": "2025-12-17T07:29:31.533Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/4f879d3a-e31a-43a8-a378-e771faec0251.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/4f879d3a-e31a-43a8-a378-e771faec0251.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/4f879d3a-e31a-43a8-a378-e771faec0251.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14929,
|
||||
"course_id": 747,
|
||||
"content": "怕孩子落后,是 “竞争思维” 的产物",
|
||||
"category": "text",
|
||||
"attachment_id": "",
|
||||
"order": 2,
|
||||
"duration": 1000000000,
|
||||
"created_at": "2025-12-17T07:28:46.539Z",
|
||||
"updated_at": "2025-12-17T07:28:46.539Z",
|
||||
"attachment": null
|
||||
},
|
||||
{
|
||||
"id": 14930,
|
||||
"course_id": 747,
|
||||
"content": "010f53e6-0c5d-4b58-97a1-8eb1fcd71942.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "010f53e6-0c5d-4b58-97a1-8eb1fcd71942",
|
||||
"order": 3,
|
||||
"duration": 32520,
|
||||
"created_at": "2025-12-17T07:28:46.539Z",
|
||||
"updated_at": "2025-12-17T07:29:31.841Z",
|
||||
"attachment": {
|
||||
"id": 103183,
|
||||
"attachment_id": "010f53e6-0c5d-4b58-97a1-8eb1fcd71942",
|
||||
"name": "010f53e6-0c5d-4b58-97a1-8eb1fcd71942.mp3",
|
||||
"thumb": "",
|
||||
"raw": "010f53e6-0c5d-4b58-97a1-8eb1fcd71942.mp3",
|
||||
"size": 260205,
|
||||
"duration": 32520,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-17T07:28:46.481Z",
|
||||
"updated_at": "2025-12-17T07:29:31.837Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/010f53e6-0c5d-4b58-97a1-8eb1fcd71942.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/010f53e6-0c5d-4b58-97a1-8eb1fcd71942.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/010f53e6-0c5d-4b58-97a1-8eb1fcd71942.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14931,
|
||||
"course_id": 747,
|
||||
"content": "竞争之外,还有:合作、独立",
|
||||
"category": "text",
|
||||
"attachment_id": "",
|
||||
"order": 4,
|
||||
"duration": 1000000000,
|
||||
"created_at": "2025-12-17T07:28:46.539Z",
|
||||
"updated_at": "2025-12-17T07:28:46.539Z",
|
||||
"attachment": null
|
||||
},
|
||||
{
|
||||
"id": 14932,
|
||||
"course_id": 747,
|
||||
"content": "62488e93-e99c-4ffa-b2cd-4f9ac242fa3a.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "62488e93-e99c-4ffa-b2cd-4f9ac242fa3a",
|
||||
"order": 5,
|
||||
"duration": 40460,
|
||||
"created_at": "2025-12-17T07:28:46.539Z",
|
||||
"updated_at": "2025-12-17T07:29:32.114Z",
|
||||
"attachment": {
|
||||
"id": 103184,
|
||||
"attachment_id": "62488e93-e99c-4ffa-b2cd-4f9ac242fa3a",
|
||||
"name": "62488e93-e99c-4ffa-b2cd-4f9ac242fa3a.mp3",
|
||||
"thumb": "",
|
||||
"raw": "62488e93-e99c-4ffa-b2cd-4f9ac242fa3a.mp3",
|
||||
"size": 323757,
|
||||
"duration": 40460,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-17T07:28:46.483Z",
|
||||
"updated_at": "2025-12-17T07:29:32.109Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/62488e93-e99c-4ffa-b2cd-4f9ac242fa3a.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/62488e93-e99c-4ffa-b2cd-4f9ac242fa3a.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/62488e93-e99c-4ffa-b2cd-4f9ac242fa3a.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14933,
|
||||
"course_id": 747,
|
||||
"content": "竞争思维 -> 固化心态(fixed minset,而非 growth minset 成长心态)",
|
||||
"category": "text",
|
||||
"attachment_id": "",
|
||||
"order": 6,
|
||||
"duration": 1000000000,
|
||||
"created_at": "2025-12-17T07:28:46.539Z",
|
||||
"updated_at": "2025-12-17T07:28:46.539Z",
|
||||
"attachment": null
|
||||
},
|
||||
{
|
||||
"id": 14934,
|
||||
"course_id": 747,
|
||||
"content": "3360e268-223f-4d28-b939-6180c77ecaa5.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "3360e268-223f-4d28-b939-6180c77ecaa5",
|
||||
"order": 7,
|
||||
"duration": 36070,
|
||||
"created_at": "2025-12-17T07:28:46.539Z",
|
||||
"updated_at": "2025-12-17T07:29:32.352Z",
|
||||
"attachment": {
|
||||
"id": 103185,
|
||||
"attachment_id": "3360e268-223f-4d28-b939-6180c77ecaa5",
|
||||
"name": "3360e268-223f-4d28-b939-6180c77ecaa5.mp3",
|
||||
"thumb": "",
|
||||
"raw": "3360e268-223f-4d28-b939-6180c77ecaa5.mp3",
|
||||
"size": 288621,
|
||||
"duration": 36070,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-17T07:28:46.486Z",
|
||||
"updated_at": "2025-12-17T07:29:32.347Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/3360e268-223f-4d28-b939-6180c77ecaa5.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/3360e268-223f-4d28-b939-6180c77ecaa5.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/3360e268-223f-4d28-b939-6180c77ecaa5.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14935,
|
||||
"course_id": 747,
|
||||
"content": "1de24362-e55b-4df6-88bc-fc12ce059025.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "1de24362-e55b-4df6-88bc-fc12ce059025",
|
||||
"order": 8,
|
||||
"duration": 38160,
|
||||
"created_at": "2025-12-17T07:28:46.539Z",
|
||||
"updated_at": "2025-12-17T07:29:32.577Z",
|
||||
"attachment": {
|
||||
"id": 103186,
|
||||
"attachment_id": "1de24362-e55b-4df6-88bc-fc12ce059025",
|
||||
"name": "1de24362-e55b-4df6-88bc-fc12ce059025.mp3",
|
||||
"thumb": "",
|
||||
"raw": "1de24362-e55b-4df6-88bc-fc12ce059025.mp3",
|
||||
"size": 305325,
|
||||
"duration": 38160,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-17T07:28:46.488Z",
|
||||
"updated_at": "2025-12-17T07:29:32.572Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/1de24362-e55b-4df6-88bc-fc12ce059025.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/1de24362-e55b-4df6-88bc-fc12ce059025.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/1de24362-e55b-4df6-88bc-fc12ce059025.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14936,
|
||||
"course_id": 747,
|
||||
"content": "19918628-5092-42fa-a744-b02aba125ee2.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "19918628-5092-42fa-a744-b02aba125ee2",
|
||||
"order": 9,
|
||||
"duration": 45530,
|
||||
"created_at": "2025-12-17T07:28:46.539Z",
|
||||
"updated_at": "2025-12-17T07:29:33.3Z",
|
||||
"attachment": {
|
||||
"id": 103187,
|
||||
"attachment_id": "19918628-5092-42fa-a744-b02aba125ee2",
|
||||
"name": "19918628-5092-42fa-a744-b02aba125ee2.mp3",
|
||||
"thumb": "",
|
||||
"raw": "19918628-5092-42fa-a744-b02aba125ee2.mp3",
|
||||
"size": 364269,
|
||||
"duration": 45530,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-17T07:28:46.49Z",
|
||||
"updated_at": "2025-12-17T07:29:33.295Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/19918628-5092-42fa-a744-b02aba125ee2.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/19918628-5092-42fa-a744-b02aba125ee2.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/19918628-5092-42fa-a744-b02aba125ee2.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14937,
|
||||
"course_id": 747,
|
||||
"content": "32df722b-c16d-4c23-995a-e01af1051ad1.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "32df722b-c16d-4c23-995a-e01af1051ad1",
|
||||
"order": 10,
|
||||
"duration": 35950,
|
||||
"created_at": "2025-12-17T07:28:46.539Z",
|
||||
"updated_at": "2025-12-17T07:29:33.517Z",
|
||||
"attachment": {
|
||||
"id": 103188,
|
||||
"attachment_id": "32df722b-c16d-4c23-995a-e01af1051ad1",
|
||||
"name": "32df722b-c16d-4c23-995a-e01af1051ad1.mp3",
|
||||
"thumb": "",
|
||||
"raw": "32df722b-c16d-4c23-995a-e01af1051ad1.mp3",
|
||||
"size": 287661,
|
||||
"duration": 35950,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-17T07:28:46.493Z",
|
||||
"updated_at": "2025-12-17T07:29:33.512Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/32df722b-c16d-4c23-995a-e01af1051ad1.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/32df722b-c16d-4c23-995a-e01af1051ad1.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/32df722b-c16d-4c23-995a-e01af1051ad1.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14938,
|
||||
"course_id": 747,
|
||||
"content": "e6e355af-011f-41c1-a32b-fae804e65351.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "e6e355af-011f-41c1-a32b-fae804e65351",
|
||||
"order": 11,
|
||||
"duration": 50330,
|
||||
"created_at": "2025-12-17T07:28:46.539Z",
|
||||
"updated_at": "2025-12-17T07:29:33.748Z",
|
||||
"attachment": {
|
||||
"id": 103189,
|
||||
"attachment_id": "e6e355af-011f-41c1-a32b-fae804e65351",
|
||||
"name": "e6e355af-011f-41c1-a32b-fae804e65351.mp3",
|
||||
"thumb": "",
|
||||
"raw": "e6e355af-011f-41c1-a32b-fae804e65351.mp3",
|
||||
"size": 402669,
|
||||
"duration": 50330,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-17T07:28:46.495Z",
|
||||
"updated_at": "2025-12-17T07:29:33.743Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/e6e355af-011f-41c1-a32b-fae804e65351.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/e6e355af-011f-41c1-a32b-fae804e65351.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/e6e355af-011f-41c1-a32b-fae804e65351.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14939,
|
||||
"course_id": 747,
|
||||
"content": "13a86bda-f7a9-4e20-bb79-747969216281.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "13a86bda-f7a9-4e20-bb79-747969216281",
|
||||
"order": 12,
|
||||
"duration": 21480,
|
||||
"created_at": "2025-12-17T07:28:46.539Z",
|
||||
"updated_at": "2025-12-17T07:29:33.974Z",
|
||||
"attachment": {
|
||||
"id": 103190,
|
||||
"attachment_id": "13a86bda-f7a9-4e20-bb79-747969216281",
|
||||
"name": "13a86bda-f7a9-4e20-bb79-747969216281.mp3",
|
||||
"thumb": "",
|
||||
"raw": "13a86bda-f7a9-4e20-bb79-747969216281.mp3",
|
||||
"size": 171885,
|
||||
"duration": 21480,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-17T07:28:46.497Z",
|
||||
"updated_at": "2025-12-17T07:29:33.969Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/13a86bda-f7a9-4e20-bb79-747969216281.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/13a86bda-f7a9-4e20-bb79-747969216281.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/13a86bda-f7a9-4e20-bb79-747969216281.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14940,
|
||||
"course_id": 747,
|
||||
"content": "79fa65e7-6538-4c5a-b020-b280ac425307.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "79fa65e7-6538-4c5a-b020-b280ac425307",
|
||||
"order": 13,
|
||||
"duration": 35060,
|
||||
"created_at": "2025-12-17T07:28:46.539Z",
|
||||
"updated_at": "2025-12-17T07:29:34.204Z",
|
||||
"attachment": {
|
||||
"id": 103191,
|
||||
"attachment_id": "79fa65e7-6538-4c5a-b020-b280ac425307",
|
||||
"name": "79fa65e7-6538-4c5a-b020-b280ac425307.mp3",
|
||||
"thumb": "",
|
||||
"raw": "79fa65e7-6538-4c5a-b020-b280ac425307.mp3",
|
||||
"size": 280557,
|
||||
"duration": 35060,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-17T07:28:46.5Z",
|
||||
"updated_at": "2025-12-17T07:29:34.199Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/79fa65e7-6538-4c5a-b020-b280ac425307.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/79fa65e7-6538-4c5a-b020-b280ac425307.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/79fa65e7-6538-4c5a-b020-b280ac425307.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14941,
|
||||
"course_id": 747,
|
||||
"content": "如果 ai 成为了你 “不学” 这理由,那么你吃亏吃的是最大的…",
|
||||
"category": "text",
|
||||
"attachment_id": "",
|
||||
"order": 14,
|
||||
"duration": 1000000000,
|
||||
"created_at": "2025-12-17T07:28:46.539Z",
|
||||
"updated_at": "2025-12-17T07:28:46.539Z",
|
||||
"attachment": null
|
||||
},
|
||||
{
|
||||
"id": 14942,
|
||||
"course_id": 747,
|
||||
"content": "04f58428-27f4-4946-b7ec-e78abee0ed94.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "04f58428-27f4-4946-b7ec-e78abee0ed94",
|
||||
"order": 15,
|
||||
"duration": 27220,
|
||||
"created_at": "2025-12-17T07:28:46.539Z",
|
||||
"updated_at": "2025-12-17T07:29:34.449Z",
|
||||
"attachment": {
|
||||
"id": 103192,
|
||||
"attachment_id": "04f58428-27f4-4946-b7ec-e78abee0ed94",
|
||||
"name": "04f58428-27f4-4946-b7ec-e78abee0ed94.mp3",
|
||||
"thumb": "",
|
||||
"raw": "04f58428-27f4-4946-b7ec-e78abee0ed94.mp3",
|
||||
"size": 217773,
|
||||
"duration": 27220,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-17T07:28:46.502Z",
|
||||
"updated_at": "2025-12-17T07:29:34.444Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/04f58428-27f4-4946-b7ec-e78abee0ed94.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/04f58428-27f4-4946-b7ec-e78abee0ed94.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/04f58428-27f4-4946-b7ec-e78abee0ed94.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14943,
|
||||
"course_id": 747,
|
||||
"content": "d2b59ddc-79af-4262-9d2d-ec7a8d7a9212.gif",
|
||||
"category": "image",
|
||||
"attachment_id": "d2b59ddc-79af-4262-9d2d-ec7a8d7a9212",
|
||||
"order": 16,
|
||||
"duration": 1000000000,
|
||||
"created_at": "2025-12-17T07:28:46.539Z",
|
||||
"updated_at": "2025-12-17T07:28:46.539Z",
|
||||
"attachment": {
|
||||
"id": 103193,
|
||||
"attachment_id": "d2b59ddc-79af-4262-9d2d-ec7a8d7a9212",
|
||||
"name": "d2b59ddc-79af-4262-9d2d-ec7a8d7a9212.gif",
|
||||
"thumb": "",
|
||||
"raw": "d2b59ddc-79af-4262-9d2d-ec7a8d7a9212.gif",
|
||||
"size": 3424723,
|
||||
"duration": 0,
|
||||
"mime_type": "image/gif",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-17T07:28:46.504Z",
|
||||
"updated_at": "2025-12-17T07:28:58.676Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/d2b59ddc-79af-4262-9d2d-ec7a8d7a9212.gif",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/d2b59ddc-79af-4262-9d2d-ec7a8d7a9212.gif",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/d2b59ddc-79af-4262-9d2d-ec7a8d7a9212.gif"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14944,
|
||||
"course_id": 747,
|
||||
"content": "c231748b-0d75-4c26-89e0-535040675760.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "c231748b-0d75-4c26-89e0-535040675760",
|
||||
"order": 17,
|
||||
"duration": 28750,
|
||||
"created_at": "2025-12-17T07:28:46.539Z",
|
||||
"updated_at": "2025-12-17T07:29:34.699Z",
|
||||
"attachment": {
|
||||
"id": 103194,
|
||||
"attachment_id": "c231748b-0d75-4c26-89e0-535040675760",
|
||||
"name": "c231748b-0d75-4c26-89e0-535040675760.mp3",
|
||||
"thumb": "",
|
||||
"raw": "c231748b-0d75-4c26-89e0-535040675760.mp3",
|
||||
"size": 230061,
|
||||
"duration": 28750,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-17T07:28:46.507Z",
|
||||
"updated_at": "2025-12-17T07:29:34.695Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/c231748b-0d75-4c26-89e0-535040675760.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/c231748b-0d75-4c26-89e0-535040675760.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/c231748b-0d75-4c26-89e0-535040675760.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14945,
|
||||
"course_id": 747,
|
||||
"content": "1e2c0c0e-578a-4be9-8073-98479ea41d58.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "1e2c0c0e-578a-4be9-8073-98479ea41d58",
|
||||
"order": 18,
|
||||
"duration": 31100,
|
||||
"created_at": "2025-12-17T07:28:46.539Z",
|
||||
"updated_at": "2025-12-17T07:29:34.91Z",
|
||||
"attachment": {
|
||||
"id": 103195,
|
||||
"attachment_id": "1e2c0c0e-578a-4be9-8073-98479ea41d58",
|
||||
"name": "1e2c0c0e-578a-4be9-8073-98479ea41d58.mp3",
|
||||
"thumb": "",
|
||||
"raw": "1e2c0c0e-578a-4be9-8073-98479ea41d58.mp3",
|
||||
"size": 248877,
|
||||
"duration": 31100,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-17T07:28:46.509Z",
|
||||
"updated_at": "2025-12-17T07:29:34.906Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/1e2c0c0e-578a-4be9-8073-98479ea41d58.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/1e2c0c0e-578a-4be9-8073-98479ea41d58.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/1e2c0c0e-578a-4be9-8073-98479ea41d58.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14946,
|
||||
"course_id": 747,
|
||||
"content": "87d061c8-6c20-48ac-9ebe-fda77e49a880.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "87d061c8-6c20-48ac-9ebe-fda77e49a880",
|
||||
"order": 19,
|
||||
"duration": 21070,
|
||||
"created_at": "2025-12-17T07:28:46.539Z",
|
||||
"updated_at": "2025-12-17T07:29:35.131Z",
|
||||
"attachment": {
|
||||
"id": 103196,
|
||||
"attachment_id": "87d061c8-6c20-48ac-9ebe-fda77e49a880",
|
||||
"name": "87d061c8-6c20-48ac-9ebe-fda77e49a880.mp3",
|
||||
"thumb": "",
|
||||
"raw": "87d061c8-6c20-48ac-9ebe-fda77e49a880.mp3",
|
||||
"size": 168621,
|
||||
"duration": 21070,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-17T07:28:46.511Z",
|
||||
"updated_at": "2025-12-17T07:29:35.126Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/87d061c8-6c20-48ac-9ebe-fda77e49a880.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/87d061c8-6c20-48ac-9ebe-fda77e49a880.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/87d061c8-6c20-48ac-9ebe-fda77e49a880.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14947,
|
||||
"course_id": 747,
|
||||
"content": "就算同样去玩无弦吉他,那些原来就会弹琴的人玩得更好。",
|
||||
"category": "text",
|
||||
"attachment_id": "",
|
||||
"order": 20,
|
||||
"duration": 1000000000,
|
||||
"created_at": "2025-12-17T07:28:46.539Z",
|
||||
"updated_at": "2025-12-17T07:28:46.539Z",
|
||||
"attachment": null
|
||||
},
|
||||
{
|
||||
"id": 14948,
|
||||
"course_id": 747,
|
||||
"content": "7a570d64-aa0a-4333-8e5d-c8be9795616c.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "7a570d64-aa0a-4333-8e5d-c8be9795616c",
|
||||
"order": 21,
|
||||
"duration": 24580,
|
||||
"created_at": "2025-12-17T07:28:46.539Z",
|
||||
"updated_at": "2025-12-17T07:29:35.347Z",
|
||||
"attachment": {
|
||||
"id": 103197,
|
||||
"attachment_id": "7a570d64-aa0a-4333-8e5d-c8be9795616c",
|
||||
"name": "7a570d64-aa0a-4333-8e5d-c8be9795616c.mp3",
|
||||
"thumb": "",
|
||||
"raw": "7a570d64-aa0a-4333-8e5d-c8be9795616c.mp3",
|
||||
"size": 196653,
|
||||
"duration": 24580,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-17T07:28:46.514Z",
|
||||
"updated_at": "2025-12-17T07:29:35.342Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/7a570d64-aa0a-4333-8e5d-c8be9795616c.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/7a570d64-aa0a-4333-8e5d-c8be9795616c.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/7a570d64-aa0a-4333-8e5d-c8be9795616c.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14949,
|
||||
"course_id": 747,
|
||||
"content": "6f7c70f9-1a0e-4c7b-bb22-fc5ab9041ccf.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "6f7c70f9-1a0e-4c7b-bb22-fc5ab9041ccf",
|
||||
"order": 22,
|
||||
"duration": 14860,
|
||||
"created_at": "2025-12-17T07:28:46.539Z",
|
||||
"updated_at": "2025-12-17T07:29:35.573Z",
|
||||
"attachment": {
|
||||
"id": 103198,
|
||||
"attachment_id": "6f7c70f9-1a0e-4c7b-bb22-fc5ab9041ccf",
|
||||
"name": "6f7c70f9-1a0e-4c7b-bb22-fc5ab9041ccf.mp3",
|
||||
"thumb": "",
|
||||
"raw": "6f7c70f9-1a0e-4c7b-bb22-fc5ab9041ccf.mp3",
|
||||
"size": 118893,
|
||||
"duration": 14860,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-17T07:28:46.516Z",
|
||||
"updated_at": "2025-12-17T07:29:35.568Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/6f7c70f9-1a0e-4c7b-bb22-fc5ab9041ccf.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/6f7c70f9-1a0e-4c7b-bb22-fc5ab9041ccf.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/6f7c70f9-1a0e-4c7b-bb22-fc5ab9041ccf.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14950,
|
||||
"course_id": 747,
|
||||
"content": "39c6fe12-5136-4390-808a-77854d29bbaa.jpg",
|
||||
"category": "image",
|
||||
"attachment_id": "39c6fe12-5136-4390-808a-77854d29bbaa",
|
||||
"order": 23,
|
||||
"duration": 1000000000,
|
||||
"created_at": "2025-12-17T07:28:46.539Z",
|
||||
"updated_at": "2025-12-17T07:28:46.539Z",
|
||||
"attachment": {
|
||||
"id": 103199,
|
||||
"attachment_id": "39c6fe12-5136-4390-808a-77854d29bbaa",
|
||||
"name": "39c6fe12-5136-4390-808a-77854d29bbaa.jpg",
|
||||
"thumb": "",
|
||||
"raw": "39c6fe12-5136-4390-808a-77854d29bbaa.jpg",
|
||||
"size": 75082,
|
||||
"duration": 0,
|
||||
"mime_type": "image/jpeg",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-17T07:28:46.518Z",
|
||||
"updated_at": "2025-12-17T07:29:02.822Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/39c6fe12-5136-4390-808a-77854d29bbaa.webp",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/39c6fe12-5136-4390-808a-77854d29bbaa.jpg",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/39c6fe12-5136-4390-808a-77854d29bbaa.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14951,
|
||||
"course_id": 747,
|
||||
"content": "e38342f4-f269-4f50-ba96-f758986e5596.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "e38342f4-f269-4f50-ba96-f758986e5596",
|
||||
"order": 24,
|
||||
"duration": 47470,
|
||||
"created_at": "2025-12-17T07:28:46.539Z",
|
||||
"updated_at": "2025-12-17T07:29:35.794Z",
|
||||
"attachment": {
|
||||
"id": 103200,
|
||||
"attachment_id": "e38342f4-f269-4f50-ba96-f758986e5596",
|
||||
"name": "e38342f4-f269-4f50-ba96-f758986e5596.mp3",
|
||||
"thumb": "",
|
||||
"raw": "e38342f4-f269-4f50-ba96-f758986e5596.mp3",
|
||||
"size": 379821,
|
||||
"duration": 47470,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-17T07:28:46.52Z",
|
||||
"updated_at": "2025-12-17T07:29:35.789Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/e38342f4-f269-4f50-ba96-f758986e5596.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/e38342f4-f269-4f50-ba96-f758986e5596.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/e38342f4-f269-4f50-ba96-f758986e5596.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14952,
|
||||
"course_id": 747,
|
||||
"content": "一切练手、练嘴的机会,都不能放弃,最好不要放弃,因为它们会让你的大脑更发达。",
|
||||
"category": "text",
|
||||
"attachment_id": "",
|
||||
"order": 25,
|
||||
"duration": 1000000000,
|
||||
"created_at": "2025-12-17T07:28:46.539Z",
|
||||
"updated_at": "2025-12-17T07:28:46.539Z",
|
||||
"attachment": null
|
||||
},
|
||||
{
|
||||
"id": 14953,
|
||||
"course_id": 747,
|
||||
"content": "11ac9c87-e468-43e3-b21c-f28bd883bb92.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "11ac9c87-e468-43e3-b21c-f28bd883bb92",
|
||||
"order": 26,
|
||||
"duration": 38020,
|
||||
"created_at": "2025-12-17T07:28:46.539Z",
|
||||
"updated_at": "2025-12-17T07:29:36.026Z",
|
||||
"attachment": {
|
||||
"id": 103201,
|
||||
"attachment_id": "11ac9c87-e468-43e3-b21c-f28bd883bb92",
|
||||
"name": "11ac9c87-e468-43e3-b21c-f28bd883bb92.mp3",
|
||||
"thumb": "",
|
||||
"raw": "11ac9c87-e468-43e3-b21c-f28bd883bb92.mp3",
|
||||
"size": 304173,
|
||||
"duration": 38020,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-17T07:28:46.523Z",
|
||||
"updated_at": "2025-12-17T07:29:36.021Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/11ac9c87-e468-43e3-b21c-f28bd883bb92.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/11ac9c87-e468-43e3-b21c-f28bd883bb92.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/11ac9c87-e468-43e3-b21c-f28bd883bb92.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14954,
|
||||
"course_id": 747,
|
||||
"content": "357b4cd9-24c5-4c89-a8b3-4c426abd0548.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "357b4cd9-24c5-4c89-a8b3-4c426abd0548",
|
||||
"order": 27,
|
||||
"duration": 20280,
|
||||
"created_at": "2025-12-17T07:28:46.539Z",
|
||||
"updated_at": "2025-12-17T07:29:36.248Z",
|
||||
"attachment": {
|
||||
"id": 103202,
|
||||
"attachment_id": "357b4cd9-24c5-4c89-a8b3-4c426abd0548",
|
||||
"name": "357b4cd9-24c5-4c89-a8b3-4c426abd0548.mp3",
|
||||
"thumb": "",
|
||||
"raw": "357b4cd9-24c5-4c89-a8b3-4c426abd0548.mp3",
|
||||
"size": 162285,
|
||||
"duration": 20280,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-17T07:28:46.525Z",
|
||||
"updated_at": "2025-12-17T07:29:36.243Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/357b4cd9-24c5-4c89-a8b3-4c426abd0548.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/357b4cd9-24c5-4c89-a8b3-4c426abd0548.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/357b4cd9-24c5-4c89-a8b3-4c426abd0548.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14955,
|
||||
"course_id": 747,
|
||||
"content": "72a98ff1-1e50-4c3f-bb3b-242c139d35cb.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "72a98ff1-1e50-4c3f-bb3b-242c139d35cb",
|
||||
"order": 28,
|
||||
"duration": 17210,
|
||||
"created_at": "2025-12-17T07:28:46.539Z",
|
||||
"updated_at": "2025-12-17T07:29:36.478Z",
|
||||
"attachment": {
|
||||
"id": 103203,
|
||||
"attachment_id": "72a98ff1-1e50-4c3f-bb3b-242c139d35cb",
|
||||
"name": "72a98ff1-1e50-4c3f-bb3b-242c139d35cb.mp3",
|
||||
"thumb": "",
|
||||
"raw": "72a98ff1-1e50-4c3f-bb3b-242c139d35cb.mp3",
|
||||
"size": 137709,
|
||||
"duration": 17210,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-17T07:28:46.527Z",
|
||||
"updated_at": "2025-12-17T07:29:36.473Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/72a98ff1-1e50-4c3f-bb3b-242c139d35cb.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/72a98ff1-1e50-4c3f-bb3b-242c139d35cb.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/72a98ff1-1e50-4c3f-bb3b-242c139d35cb.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14956,
|
||||
"course_id": 747,
|
||||
"content": "9818f8a9-cdf9-4d8d-a65c-f385c6c4e267.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "9818f8a9-cdf9-4d8d-a65c-f385c6c4e267",
|
||||
"order": 29,
|
||||
"duration": 15910,
|
||||
"created_at": "2025-12-17T07:28:46.539Z",
|
||||
"updated_at": "2025-12-17T07:29:36.701Z",
|
||||
"attachment": {
|
||||
"id": 103204,
|
||||
"attachment_id": "9818f8a9-cdf9-4d8d-a65c-f385c6c4e267",
|
||||
"name": "9818f8a9-cdf9-4d8d-a65c-f385c6c4e267.mp3",
|
||||
"thumb": "",
|
||||
"raw": "9818f8a9-cdf9-4d8d-a65c-f385c6c4e267.mp3",
|
||||
"size": 127341,
|
||||
"duration": 15910,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-17T07:28:46.53Z",
|
||||
"updated_at": "2025-12-17T07:29:36.696Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/9818f8a9-cdf9-4d8d-a65c-f385c6c4e267.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/9818f8a9-cdf9-4d8d-a65c-f385c6c4e267.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/9818f8a9-cdf9-4d8d-a65c-f385c6c4e267.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14957,
|
||||
"course_id": 747,
|
||||
"content": "* 你是不是比原来干得更多了?\n* 你是不是比原来更累了?",
|
||||
"category": "text",
|
||||
"attachment_id": "",
|
||||
"order": 30,
|
||||
"duration": 1000000000,
|
||||
"created_at": "2025-12-17T07:28:46.539Z",
|
||||
"updated_at": "2025-12-17T07:28:46.539Z",
|
||||
"attachment": null
|
||||
},
|
||||
{
|
||||
"id": 14958,
|
||||
"course_id": 747,
|
||||
"content": "7d90b62c-1062-4e8a-af57-16c36bee207a.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "7d90b62c-1062-4e8a-af57-16c36bee207a",
|
||||
"order": 31,
|
||||
"duration": 34580,
|
||||
"created_at": "2025-12-17T07:28:46.539Z",
|
||||
"updated_at": "2025-12-17T07:29:36.931Z",
|
||||
"attachment": {
|
||||
"id": 103205,
|
||||
"attachment_id": "7d90b62c-1062-4e8a-af57-16c36bee207a",
|
||||
"name": "7d90b62c-1062-4e8a-af57-16c36bee207a.mp3",
|
||||
"thumb": "",
|
||||
"raw": "7d90b62c-1062-4e8a-af57-16c36bee207a.mp3",
|
||||
"size": 276717,
|
||||
"duration": 34580,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-17T07:28:46.532Z",
|
||||
"updated_at": "2025-12-17T07:29:36.926Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/7d90b62c-1062-4e8a-af57-16c36bee207a.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/7d90b62c-1062-4e8a-af57-16c36bee207a.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/7d90b62c-1062-4e8a-af57-16c36bee207a.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14959,
|
||||
"course_id": 747,
|
||||
"content": "a0040b26-c9d4-42ef-a68e-81d092ba94d9.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "a0040b26-c9d4-42ef-a68e-81d092ba94d9",
|
||||
"order": 32,
|
||||
"duration": 23520,
|
||||
"created_at": "2025-12-17T07:28:46.539Z",
|
||||
"updated_at": "2025-12-17T07:29:37.152Z",
|
||||
"attachment": {
|
||||
"id": 103206,
|
||||
"attachment_id": "a0040b26-c9d4-42ef-a68e-81d092ba94d9",
|
||||
"name": "a0040b26-c9d4-42ef-a68e-81d092ba94d9.mp3",
|
||||
"thumb": "",
|
||||
"raw": "a0040b26-c9d4-42ef-a68e-81d092ba94d9.mp3",
|
||||
"size": 188205,
|
||||
"duration": 23520,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-17T07:28:46.534Z",
|
||||
"updated_at": "2025-12-17T07:29:37.148Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/a0040b26-c9d4-42ef-a68e-81d092ba94d9.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/a0040b26-c9d4-42ef-a68e-81d092ba94d9.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/a0040b26-c9d4-42ef-a68e-81d092ba94d9.mp3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 14960,
|
||||
"course_id": 747,
|
||||
"content": "66f750dd-9f97-4c96-9cd9-110485c101c5.mp3",
|
||||
"category": "audio",
|
||||
"attachment_id": "66f750dd-9f97-4c96-9cd9-110485c101c5",
|
||||
"order": 33,
|
||||
"duration": 39580,
|
||||
"created_at": "2025-12-17T07:28:46.539Z",
|
||||
"updated_at": "2025-12-17T07:29:37.382Z",
|
||||
"attachment": {
|
||||
"id": 103207,
|
||||
"attachment_id": "66f750dd-9f97-4c96-9cd9-110485c101c5",
|
||||
"name": "66f750dd-9f97-4c96-9cd9-110485c101c5.mp3",
|
||||
"thumb": "",
|
||||
"raw": "66f750dd-9f97-4c96-9cd9-110485c101c5.mp3",
|
||||
"size": 316653,
|
||||
"duration": 39580,
|
||||
"mime_type": "audio/mp3",
|
||||
"location": "aliyun_oss",
|
||||
"created_at": "2025-12-17T07:28:46.537Z",
|
||||
"updated_at": "2025-12-17T07:29:37.377Z",
|
||||
"url": "https://bandu-resources.songy.info/7000104757/66f750dd-9f97-4c96-9cd9-110485c101c5.mp3",
|
||||
"raw_url": "https://bandu-resources.songy.info/7000104757/66f750dd-9f97-4c96-9cd9-110485c101c5.mp3",
|
||||
"thumb_url": "https://bandu-resources.songy.info/7000104757/66f750dd-9f97-4c96-9cd9-110485c101c5.mp3"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
import os
|
||||
import argparse
|
||||
import uuid
|
||||
|
||||
from funasr import AutoModel
|
||||
from funasr.utils.postprocess_utils import rich_transcription_postprocess
|
||||
@@ -11,8 +12,11 @@ from logging_config import setup_logging
|
||||
logger = setup_logging()
|
||||
|
||||
|
||||
def extract_or_convert_audio(file_path, output_audio_path="processed_audio.wav"):
|
||||
def extract_or_convert_audio(file_path, output_audio_path="processed_audio"):
|
||||
ext = os.path.splitext(file_path)[1].lower()
|
||||
filename = os.path.basename(file_path)
|
||||
random_uuid = str(uuid.uuid4())
|
||||
output_audio_path = output_audio_path + "_" + random_uuid + ".wav"
|
||||
|
||||
if ext in [".mp4", ".mov", ".avi", ".mkv"]:
|
||||
logger.info("🎬 Extracting audio from video...")
|
||||
@@ -27,11 +31,12 @@ def extract_or_convert_audio(file_path, output_audio_path="processed_audio.wav")
|
||||
sound.export(output_audio_path, format="wav")
|
||||
else:
|
||||
raise ValueError(f"Unsupported file type: {ext}")
|
||||
logger.info(f"Converted Audio saved to: {output_audio_path}")
|
||||
|
||||
return output_audio_path
|
||||
|
||||
|
||||
def transcribe_audio_funasr(audio_path, device="cuda:0"):
|
||||
def transcribe_audio_funasr(audio_path, device="cpu"):
|
||||
logger.info("🧠 Loading FunASR model...")
|
||||
model = AutoModel(
|
||||
model="iic/SenseVoiceSmall",
|
||||
@@ -59,7 +64,7 @@ def transcribe_audio_funasr(audio_path, device="cuda:0"):
|
||||
|
||||
|
||||
# 加载模型并作为全局变量
|
||||
default_model = AutoModel(model="iic/SenseVoiceSmall", trust_remote_code=True, device="cuda:0", disable_update=True)
|
||||
default_model = AutoModel(model="iic/SenseVoiceSmall", trust_remote_code=True, device="cpu", disable_update=True)
|
||||
|
||||
def transcribe_audio_funasr_batch(audio_path):
|
||||
res = default_model.generate(
|
||||
@@ -152,8 +157,8 @@ def convert_media(file_path, is_batch=False, save_to_disk=True):
|
||||
logger.info(f"✅ Transcript saved to: {output_path}")
|
||||
return transcript
|
||||
finally:
|
||||
if os.path.exists("processed_audio.wav"):
|
||||
os.remove("processed_audio.wav")
|
||||
if os.path.exists(audio_file):
|
||||
os.remove(audio_file)
|
||||
|
||||
|
||||
def process_input(path, recursive=False):
|
||||
|
||||
Reference in New Issue
Block a user