diff --git a/audio.json b/audio.json index 4ac6b12..621c8f1 100644 --- a/audio.json +++ b/audio.json @@ -1,482 +1,314 @@ [ { - "course_id": 7849, - "message_id": "bca89329-500d-40b5-a4b4-d6dcb14d1b45", + "course_id": 7864, + "message_id": "b89274e3-1337-4ff3-aba5-fb1329472463", "index": 0, "user_id": "b76e0418-2d94-4b36-a6dd-497933b79923", "quote_message_id": "", "text": "", "category": "PLAIN_AUDIO", - "created_at": "2023-06-28T01:53:28.278578Z", + "created_at": "2023-07-07T03:02:45.072916Z", "attachment": { - "id": "e41ca7ec-3834-4fab-a1d0-3cc45582d4d4", + "id": "6c236a0e-1aa6-4394-a32b-4f6aeb05779b", "category": "course", - "size": 299565, + "size": 384045, "mime_type": "audio/mp3", - "name": "e41ca7ec-3834-4fab-a1d0-3cc45582d4d4.mp3", - "duration": 37397, - "waveform": "BgNAXQY5FAU1AzUnEwYHNAYiDTFMCiAdLQk9CQwWNRglBzM2FjIeNBEHPzEDHxQFRyQpGCkEGRsyLQMKBwIG", + "name": "6c236a0e-1aa6-4394-a32b-4f6aeb05779b.mp3", + "duration": 47957, + "waveform": "HQmoXw9pKAoQBlIBZgQDNXwGAo5xQBxaAwQCDk8FTBoGCV4ERWAJNwiNLQkEER0KHQtaCwQERBYTC4V9GQED", "location": "aws_s3", - "url": "https://xuexi-courses-storage.firesbox.com/7000102069/replay/e41ca7ec-3834-4fab-a1d0-3cc45582d4d4.mp3", + "url": "https://xuexi-courses-storage.firesbox.com/7000102069/replay/6c236a0e-1aa6-4394-a32b-4f6aeb05779b.mp3", "group_id": "7000102069" }, "speaker": null, "group_id": "7000102069" }, { - "course_id": 7849, - "message_id": "b1567590-fe87-40a1-93e9-bb921f83b865", + "course_id": 7864, + "message_id": "84d07583-5e59-4cc0-8131-24ca4028db0c", "index": 0, "user_id": "b76e0418-2d94-4b36-a6dd-497933b79923", "quote_message_id": "", "text": "", "category": "PLAIN_AUDIO", - "created_at": "2023-06-28T01:54:30.498846Z", + "created_at": "2023-07-07T03:03:35.075323Z", "attachment": { - "id": "cfa66a23-7058-42e7-a5e8-1d6882943de0", + "id": "95da42b0-1548-40f5-99e3-f47b8e4ac56f", "category": "course", - "size": 359277, + "size": 313965, "mime_type": "audio/mp3", - "name": "cfa66a23-7058-42e7-a5e8-1d6882943de0.mp3", - "duration": 44874, - "waveform": "MWQXRmogHCgGBQ4/GRQwNUccGiY7ClRdVRBlBgsGIRhFGwtqIng1J1wJa1k6DR4QCQgJWkMKJVcGCwssURAI", + "name": "95da42b0-1548-40f5-99e3-f47b8e4ac56f.mp3", + "duration": 39210, + "waveform": "ByELEQAKAQwCBhQYAmVAHkknDgkHBgQaCQcMDAEIDQQAAg0CEAoZAAEBBAsBAg8CFgQFBwUCDQcdDA4FAgEA", "location": "aws_s3", - "url": "https://xuexi-courses-storage.firesbox.com/7000102069/replay/cfa66a23-7058-42e7-a5e8-1d6882943de0.mp3", + "url": "https://xuexi-courses-storage.firesbox.com/7000102069/replay/95da42b0-1548-40f5-99e3-f47b8e4ac56f.mp3", "group_id": "7000102069" }, "speaker": null, "group_id": "7000102069" }, { - "course_id": 7849, - "message_id": "35495802-8738-40b2-8892-28b576fed1c5", + "course_id": 7864, + "message_id": "63003251-deae-47df-9b98-04965fa53ad2", "index": 0, "user_id": "b76e0418-2d94-4b36-a6dd-497933b79923", "quote_message_id": "", "text": "", "category": "PLAIN_AUDIO", - "created_at": "2023-06-28T01:57:44.274525Z", + "created_at": "2023-07-07T03:04:26.511886Z", "attachment": { - "id": "b1a5181e-a70f-48d8-8f87-2c41b76a7ace", + "id": "c29ccd9c-2822-4ae8-b823-d5c8be64f231", "category": "course", - "size": 455277, + "size": 269997, "mime_type": "audio/mp3", - "name": "b1a5181e-a70f-48d8-8f87-2c41b76a7ace.mp3", - "duration": 56879, - "waveform": "CjUKMwQHDRgyEQgOGQ45GCINESkJPwcbCgo1JRQKLwdDFh0MEQYjPRQPDQUpCDoUBC8HGAgmQzMuICMKAwcF", + "name": "c29ccd9c-2822-4ae8-b823-d5c8be64f231.mp3", + "duration": 33701, + "waveform": "Gwx1MhNIGQEKDgQGNgEKMjQnCSQDBCMDVQUeLk8EKCUDR1pLB1QwBILeBgGGFxcgAgQwRQIXkV4IO1MjCwUG", "location": "aws_s3", - "url": "https://xuexi-courses-storage.firesbox.com/7000102069/replay/b1a5181e-a70f-48d8-8f87-2c41b76a7ace.mp3", + "url": "https://xuexi-courses-storage.firesbox.com/7000102069/replay/c29ccd9c-2822-4ae8-b823-d5c8be64f231.mp3", "group_id": "7000102069" }, "speaker": null, "group_id": "7000102069" }, { - "course_id": 7849, - "message_id": "be7a7f51-8353-40a2-bfc9-cfec956b627a", + "course_id": 7864, + "message_id": "719fe125-c531-44c4-9bc3-518717532a32", "index": 0, "user_id": "b76e0418-2d94-4b36-a6dd-497933b79923", "quote_message_id": "", "text": "", "category": "PLAIN_AUDIO", - "created_at": "2023-06-28T01:58:46.618944Z", + "created_at": "2023-07-07T03:05:00.545345Z", "attachment": { - "id": "92e0ae50-8926-4cc6-8e07-cbf32c8bba36", + "id": "2a6f30fb-004e-4104-b6ba-35ac0cba8aef", "category": "course", - "size": 403629, + "size": 231981, "mime_type": "audio/mp3", - "name": "92e0ae50-8926-4cc6-8e07-cbf32c8bba36.mp3", - "duration": 50410, - "waveform": "EAhHNwcNKQUOFgoHCQdoKAoUFggzBQQoDjY2GxYFMRMJKT8RKAUEOAtdCA4GDBkjDEMFGRIgCz1XXQcKfgkE", + "name": "2a6f30fb-004e-4104-b6ba-35ac0cba8aef.mp3", + "duration": 28965, + "waveform": "Jwd1c4NgCgJrAwAnTRwZE0sMJz8cBDZIAgo1BVEHBAYtGAQzJTAFA1EZBAIJYTgKNToWFwEbMwQIDQQdBQEG", "location": "aws_s3", - "url": "https://xuexi-courses-storage.firesbox.com/7000102069/replay/92e0ae50-8926-4cc6-8e07-cbf32c8bba36.mp3", + "url": "https://xuexi-courses-storage.firesbox.com/7000102069/replay/2a6f30fb-004e-4104-b6ba-35ac0cba8aef.mp3", "group_id": "7000102069" }, "speaker": null, "group_id": "7000102069" }, { - "course_id": 7849, - "message_id": "1a200b7c-6e23-4c76-8275-4424f26a05a5", + "course_id": 7864, + "message_id": "4a84152b-7246-40c9-9e53-5f309afb0264", "index": 0, "user_id": "b76e0418-2d94-4b36-a6dd-497933b79923", "quote_message_id": "", "text": "", "category": "PLAIN_AUDIO", - "created_at": "2023-06-28T02:00:02.801587Z", + "created_at": "2023-07-07T03:05:51.75247Z", "attachment": { - "id": "cd8400ec-2d1b-4e3a-91c8-0f89fec603b6", + "id": "e4deb785-9564-4458-9258-2a8776c8ae1a", "category": "course", - "size": 454509, + "size": 369069, "mime_type": "audio/mp3", - "name": "cd8400ec-2d1b-4e3a-91c8-0f89fec603b6.mp3", - "duration": 56783, - "waveform": "BkETKAwTIQQ1BA8ZTCkPHwc+BCoGDgc4DAYDCBckaRoaBS8DBQoENUgEAwMENA8FMQUEJBcCSA4HBC8THlMI", + "name": "e4deb785-9564-4458-9258-2a8776c8ae1a.mp3", + "duration": 46090, + "waveform": "CCucAjsLBwePk08JAwELBCYEAycXCylVAiwZAhMMVQYRKRkNAywCJwYKHwMCEBAGCxoTFxMDTAEHFAkGGQUB", "location": "aws_s3", - "url": "https://xuexi-courses-storage.firesbox.com/7000102069/replay/cd8400ec-2d1b-4e3a-91c8-0f89fec603b6.mp3", + "url": "https://xuexi-courses-storage.firesbox.com/7000102069/replay/e4deb785-9564-4458-9258-2a8776c8ae1a.mp3", "group_id": "7000102069" }, "speaker": null, "group_id": "7000102069" }, { - "course_id": 7849, - "message_id": "a7d4d9df-05f3-4c27-b721-679cc8feac42", + "course_id": 7864, + "message_id": "39e5ed81-3a55-48e3-9cb9-edc559f98d04", "index": 0, "user_id": "b76e0418-2d94-4b36-a6dd-497933b79923", "quote_message_id": "", "text": "", "category": "PLAIN_AUDIO", - "created_at": "2023-06-28T02:00:40.003477Z", + "created_at": "2023-07-07T03:06:41.881326Z", "attachment": { - "id": "457b1a02-2525-4d9f-be5f-57478d2d37ff", + "id": "8c0ac158-6cc3-4331-b98e-07314d85a630", "category": "course", - "size": 284013, + "size": 378861, "mime_type": "audio/mp3", - "name": "457b1a02-2525-4d9f-be5f-57478d2d37ff.mp3", - "duration": 35450, - "waveform": "EAWBDX0KCC4mr1ZHbAltCwY7ETEuLAcTCwtdCAs4DA1rIB1UahcOHhpUBgdHZzATKi0gCSYNLxMfDKQkFQoI", + "name": "8c0ac158-6cc3-4331-b98e-07314d85a630.mp3", + "duration": 47317, + "waveform": "AkIaAVQ1AxoDO0UKbARwDFoXCmMfCwQsCAcyA0snDCZ1BgQvLAIwKQwfHlAMX0sNSRAMA1sIAh8BDyMbLxQA", "location": "aws_s3", - "url": "https://xuexi-courses-storage.firesbox.com/7000102069/replay/457b1a02-2525-4d9f-be5f-57478d2d37ff.mp3", + "url": "https://xuexi-courses-storage.firesbox.com/7000102069/replay/8c0ac158-6cc3-4331-b98e-07314d85a630.mp3", "group_id": "7000102069" }, "speaker": null, "group_id": "7000102069" }, { - "course_id": 7849, - "message_id": "b121685a-5beb-4640-b43a-ea2603c0d3ac", + "course_id": 7864, + "message_id": "7777fe38-261d-441b-8bff-28e844dc2af7", "index": 0, "user_id": "b76e0418-2d94-4b36-a6dd-497933b79923", "quote_message_id": "", "text": "", "category": "PLAIN_AUDIO", - "created_at": "2023-06-28T02:01:37.81861Z", + "created_at": "2023-07-07T03:07:46.113352Z", "attachment": { - "id": "bb84ed8d-293c-45b0-8ebb-c86fcf46cf1b", + "id": "94a78fe9-5ef4-4989-aa55-140482c523cc", "category": "course", - "size": 410157, + "size": 424557, "mime_type": "audio/mp3", - "name": "bb84ed8d-293c-45b0-8ebb-c86fcf46cf1b.mp3", - "duration": 51221, - "waveform": "CRsKXDkZDE5XDyoZERcGCgYUMAsJbzU0bAUNBmIIZxJURBAUbGsHQHoMSz4LDzAVOg8HJQ86dh8SCUwJMhcK", + "name": "94a78fe9-5ef4-4989-aa55-140482c523cc.mp3", + "duration": 53034, + "waveform": "AgFXHAwVAxAEOTgdHHUJBQdoFxACAywEAREFBAUJDRoIIF0BYCMEEwgFAwhiVJEGBYUBBQdlBwMfCgZeCwgE", "location": "aws_s3", - "url": "https://xuexi-courses-storage.firesbox.com/7000102069/replay/bb84ed8d-293c-45b0-8ebb-c86fcf46cf1b.mp3", + "url": "https://xuexi-courses-storage.firesbox.com/7000102069/replay/94a78fe9-5ef4-4989-aa55-140482c523cc.mp3", "group_id": "7000102069" }, "speaker": null, "group_id": "7000102069" }, { - "course_id": 7849, - "message_id": "37dafaa5-c4df-42a6-870f-c0dbfa2a6b43", + "course_id": 7864, + "message_id": "9577076f-47bb-4749-9879-1b65c1dad35b", "index": 0, "user_id": "b76e0418-2d94-4b36-a6dd-497933b79923", "quote_message_id": "", "text": "", "category": "PLAIN_AUDIO", - "created_at": "2023-06-28T02:02:49.540988Z", + "created_at": "2023-07-07T03:08:26.01804Z", "attachment": { - "id": "87fb665f-230c-4f63-b73a-7f4816ff175c", + "id": "cd72162c-0bbb-4d8b-9147-59733e489158", + "category": "course", + "size": 285165, + "mime_type": "audio/mp3", + "name": "cd72162c-0bbb-4d8b-9147-59733e489158.mp3", + "duration": 35599, + "waveform": "LF8HGykjJgoGAy8pYQJlNxgDAgVdkwUCBRsDOQIkjAQIAxAyCtRTFQMpAgdcaQJhEAU6GygEWAhmAjoIOwQE", + "location": "aws_s3", + "url": "https://xuexi-courses-storage.firesbox.com/7000102069/replay/cd72162c-0bbb-4d8b-9147-59733e489158.mp3", + "group_id": "7000102069" + }, + "speaker": null, + "group_id": "7000102069" + }, + { + "course_id": 7864, + "message_id": "806ad3d4-ed6e-4a36-a8f0-8c75dbf13269", + "index": 0, + "user_id": "b76e0418-2d94-4b36-a6dd-497933b79923", + "quote_message_id": "", + "text": "", + "category": "PLAIN_AUDIO", + "created_at": "2023-07-07T03:09:26.663265Z", + "attachment": { + "id": "58ad6d82-628c-4637-b907-b5f713e4ddbd", + "category": "course", + "size": 349293, + "mime_type": "audio/mp3", + "name": "58ad6d82-628c-4637-b907-b5f713e4ddbd.mp3", + "duration": 43621, + "waveform": "EmY3HWckD1ZKCAZXLiIpCiImNAlzGRwDFAsJElQ9KywoAzYrBgIaQgglPwRSCFYoAxQKAgMSH0QcQVgTFBAB", + "location": "aws_s3", + "url": "https://xuexi-courses-storage.firesbox.com/7000102069/replay/58ad6d82-628c-4637-b907-b5f713e4ddbd.mp3", + "group_id": "7000102069" + }, + "speaker": null, + "group_id": "7000102069" + }, + { + "course_id": 7864, + "message_id": "c8083020-fa3c-496c-8e57-92aa4aeccd34", + "index": 0, + "user_id": "b76e0418-2d94-4b36-a6dd-497933b79923", + "quote_message_id": "", + "text": "", + "category": "PLAIN_AUDIO", + "created_at": "2023-07-07T03:10:20.930346Z", + "attachment": { + "id": "cfd1fdf7-fc95-4071-8cbf-cd8e6b559745", + "category": "course", + "size": 400365, + "mime_type": "audio/mp3", + "name": "cfd1fdf7-fc95-4071-8cbf-cd8e6b559745.mp3", + "duration": 50010, + "waveform": "RGIYGh8GGR0CCAgjGAgIBBAKBmwmMB4rLAQaEwQpC1YKMgxcMwMEIB4dEBEDGAQDCTIOBAsMBwICGTQNEwIE", + "location": "aws_s3", + "url": "https://xuexi-courses-storage.firesbox.com/7000102069/replay/cfd1fdf7-fc95-4071-8cbf-cd8e6b559745.mp3", + "group_id": "7000102069" + }, + "speaker": null, + "group_id": "7000102069" + }, + { + "course_id": 7864, + "message_id": "a53d5d6a-fce3-4138-beb2-9ce8007d2cc3", + "index": 0, + "user_id": "b76e0418-2d94-4b36-a6dd-497933b79923", + "quote_message_id": "", + "text": "", + "category": "PLAIN_AUDIO", + "created_at": "2023-07-07T03:11:13.682093Z", + "attachment": { + "id": "4747874e-7af3-4488-a437-b8e6d34e046f", + "category": "course", + "size": 411501, + "mime_type": "audio/mp3", + "name": "4747874e-7af3-4488-a437-b8e6d34e046f.mp3", + "duration": 51407, + "waveform": "GSoFGQ5NEAVKAydUIFcTcAECDlFNCkozJz0yHAwmMgobRgQDZAgGB0AdBBMLDRwQITsIOwY9JgUFBAwWLQIK", + "location": "aws_s3", + "url": "https://xuexi-courses-storage.firesbox.com/7000102069/replay/4747874e-7af3-4488-a437-b8e6d34e046f.mp3", + "group_id": "7000102069" + }, + "speaker": null, + "group_id": "7000102069" + }, + { + "course_id": 7864, + "message_id": "9bcba792-0017-401b-b447-2f55280cb99d", + "index": 0, + "user_id": "b76e0418-2d94-4b36-a6dd-497933b79923", + "quote_message_id": "", + "text": "", + "category": "PLAIN_AUDIO", + "created_at": "2023-07-07T03:12:16.45252Z", + "attachment": { + "id": "55cef792-d875-4e56-b18c-9741a66deb70", "category": "course", "size": 480429, "mime_type": "audio/mp3", - "name": "87fb665f-230c-4f63-b73a-7f4816ff175c.mp3", + "name": "55cef792-d875-4e56-b18c-9741a66deb70.mp3", "duration": 60005, - "waveform": "MXQkFmQsLFB7Go8yCggUCTxfBwpKDg0kCkR3Tz0HBgg4EHwuOj4jMxoPRAoMSHILYy4PWgoyRwxETlcsCx4O", + "waveform": "E2QHBycDORMFBgl1KQcUFwx/BC8mBR4qSTgEXBQ0OQ8KIGIKO0EgLCsQDwcdDQUJWAQCDDE7AWoZbStGBwME", "location": "aws_s3", - "url": "https://xuexi-courses-storage.firesbox.com/7000102069/replay/87fb665f-230c-4f63-b73a-7f4816ff175c.mp3", + "url": "https://xuexi-courses-storage.firesbox.com/7000102069/replay/55cef792-d875-4e56-b18c-9741a66deb70.mp3", "group_id": "7000102069" }, "speaker": null, "group_id": "7000102069" }, { - "course_id": 7849, - "message_id": "1ea6a2fd-6109-43a8-ae43-26369c3270bd", + "course_id": 7864, + "message_id": "157926db-37aa-471a-8f32-98f0c6187d63", "index": 0, "user_id": "b76e0418-2d94-4b36-a6dd-497933b79923", "quote_message_id": "", "text": "", "category": "PLAIN_AUDIO", - "created_at": "2023-06-28T02:04:16.08065Z", + "created_at": "2023-07-07T03:12:36.616736Z", "attachment": { - "id": "16047bba-ddaa-4710-a57c-7b05d47f2278", + "id": "55b3af7f-09f1-4e97-868d-dd5e61b3fcfe", "category": "course", - "size": 463149, + "size": 157677, "mime_type": "audio/mp3", - "name": "16047bba-ddaa-4710-a57c-7b05d47f2278.mp3", - "duration": 57855, - "waveform": "FJZARwkKGgoQCFEGSxYPAhQhK1AGIDk9DBYIRBw3PT8QJI0QOwUqVjYOBwYrHwZLEDEnCCMYKREEQBoWJxMJ", + "name": "55b3af7f-09f1-4e97-868d-dd5e61b3fcfe.mp3", + "duration": 19663, + "waveform": "HDsSDQ0diERNCQ2gFT8IFUIOAj0SSQQsJAUOCycJDQogJAYGEBAsGhEDCAkrDQgZNEAJCA0DKCMuCwYOAQsM", "location": "aws_s3", - "url": "https://xuexi-courses-storage.firesbox.com/7000102069/replay/16047bba-ddaa-4710-a57c-7b05d47f2278.mp3", - "group_id": "7000102069" - }, - "speaker": null, - "group_id": "7000102069" - }, - { - "course_id": 7849, - "message_id": "d2e4ba3a-418d-4165-ab88-2488c12f3edd", - "index": 0, - "user_id": "b76e0418-2d94-4b36-a6dd-497933b79923", - "quote_message_id": "", - "text": "", - "category": "PLAIN_AUDIO", - "created_at": "2023-06-28T02:05:14.015946Z", - "attachment": { - "id": "a358a2c3-b8be-4deb-87c8-db5de66cd8f3", - "category": "course", - "size": 447981, - "mime_type": "audio/mp3", - "name": "a358a2c3-b8be-4deb-87c8-db5de66cd8f3.mp3", - "duration": 55946, - "waveform": "UUpVfhYRKCoITwcIBhwfOiQFCgcRByE5C1IlJ1oDAmI4IgY2CAYuBgkvGxcKUwwjCQs3OTkWDC4gCBouCgoI", - "location": "aws_s3", - "url": "https://xuexi-courses-storage.firesbox.com/7000102069/replay/a358a2c3-b8be-4deb-87c8-db5de66cd8f3.mp3", - "group_id": "7000102069" - }, - "speaker": null, - "group_id": "7000102069" - }, - { - "course_id": 7849, - "message_id": "ba3c1bb1-821a-40d6-930b-f23d807d8722", - "index": 0, - "user_id": "b76e0418-2d94-4b36-a6dd-497933b79923", - "quote_message_id": "", - "text": "", - "category": "PLAIN_AUDIO", - "created_at": "2023-06-28T02:06:20.973415Z", - "attachment": { - "id": "3f3af097-ff4f-4dcf-a9f1-5069e0671101", - "category": "course", - "size": 480429, - "mime_type": "audio/mp3", - "name": "3f3af097-ff4f-4dcf-a9f1-5069e0671101.mp3", - "duration": 60005, - "waveform": "CVGKCh0HZTsIBzUnCSQcClULHg4lGDcwDQZSCGIXChsICwYJGiUHCks6BAUFChcQBw8tGQcJOCkqCxAFMQ0I", - "location": "aws_s3", - "url": "https://xuexi-courses-storage.firesbox.com/7000102069/replay/3f3af097-ff4f-4dcf-a9f1-5069e0671101.mp3", - "group_id": "7000102069" - }, - "speaker": null, - "group_id": "7000102069" - }, - { - "course_id": 7849, - "message_id": "a4ee29e8-fcea-461e-b5d4-c7d00d14964a", - "index": 0, - "user_id": "b76e0418-2d94-4b36-a6dd-497933b79923", - "quote_message_id": "", - "text": "", - "category": "PLAIN_AUDIO", - "created_at": "2023-06-28T02:07:19.414884Z", - "attachment": { - "id": "29d5326e-1995-4914-921c-0c7acf6404ec", - "category": "course", - "size": 449901, - "mime_type": "audio/mp3", - "name": "29d5326e-1995-4914-921c-0c7acf6404ec.mp3", - "duration": 56186, - "waveform": "GQk8E0URCwUpPzQyDikJKgULDQcfTAc/JQ0JGhYHT1ElKAk6BhRHSQwKBS4tXE8HKzlCTBQaEk0xOhoHMA4G", - "location": "aws_s3", - "url": "https://xuexi-courses-storage.firesbox.com/7000102069/replay/29d5326e-1995-4914-921c-0c7acf6404ec.mp3", - "group_id": "7000102069" - }, - "speaker": null, - "group_id": "7000102069" - }, - { - "course_id": 7849, - "message_id": "c521f985-f29b-4b2a-9246-452d8d03119e", - "index": 0, - "user_id": "b76e0418-2d94-4b36-a6dd-497933b79923", - "quote_message_id": "", - "text": "", - "category": "PLAIN_AUDIO", - "created_at": "2023-06-28T02:08:24.398895Z", - "attachment": { - "id": "3de537d1-3dcc-4157-bedb-dda479539f2f", - "category": "course", - "size": 480429, - "mime_type": "audio/mp3", - "name": "3de537d1-3dcc-4157-bedb-dda479539f2f.mp3", - "duration": 60005, - "waveform": "Sm05GAhFEzcGAyMNKhFNIDQLBwV+bQpUNwc3FwcXRBEVCAcuBwYjBF4qKzYrFhoPBRoLCyoEFAoOBiclLWEV", - "location": "aws_s3", - "url": "https://xuexi-courses-storage.firesbox.com/7000102069/replay/3de537d1-3dcc-4157-bedb-dda479539f2f.mp3", - "group_id": "7000102069" - }, - "speaker": null, - "group_id": "7000102069" - }, - { - "course_id": 7849, - "message_id": "80da36de-7895-4ed7-af0b-f31dd9ac0315", - "index": 0, - "user_id": "b76e0418-2d94-4b36-a6dd-497933b79923", - "quote_message_id": "", - "text": "", - "category": "PLAIN_AUDIO", - "created_at": "2023-06-28T02:09:20.297889Z", - "attachment": { - "id": "2f5bb6eb-c079-4b1e-b20f-b0d18db778d5", - "category": "course", - "size": 352365, - "mime_type": "audio/mp3", - "name": "2f5bb6eb-c079-4b1e-b20f-b0d18db778d5.mp3", - "duration": 44005, - "waveform": "BwYKCEEVCxoVKxUHHxQgAwQdFQM8GBMGHDQHGhYFMCApEg0YDxQbFwQFHRkJCSUKAxwCBRsrFQQDGQUDNSAD", - "location": "aws_s3", - "url": "https://xuexi-courses-storage.firesbox.com/7000102069/replay/2f5bb6eb-c079-4b1e-b20f-b0d18db778d5.mp3", - "group_id": "7000102069" - }, - "speaker": null, - "group_id": "7000102069" - }, - { - "course_id": 7849, - "message_id": "6cc85c66-1386-4a38-8aa5-235e3a226966", - "index": 0, - "user_id": "b76e0418-2d94-4b36-a6dd-497933b79923", - "quote_message_id": "", - "text": "自学能力、生产知识、销售知识、投资知识、精神食粮…", - "category": "PLAIN_TEXT", - "created_at": "2023-06-28T02:10:11.545847Z", - "speaker": null, - "group_id": "7000102069" - }, - { - "course_id": 7849, - "message_id": "e9240cce-a787-44cd-aa91-2db2afde7ef0", - "index": 0, - "user_id": "b76e0418-2d94-4b36-a6dd-497933b79923", - "quote_message_id": "", - "text": "", - "category": "PLAIN_AUDIO", - "created_at": "2023-06-28T02:10:36.674555Z", - "attachment": { - "id": "be800175-196f-454d-8e79-94d7739b1947", - "category": "course", - "size": 285933, - "mime_type": "audio/mp3", - "name": "be800175-196f-454d-8e79-94d7739b1947.mp3", - "duration": 35690, - "waveform": "CwokCIJ6BhEUHRMJJTskZQUYBDgENCwHbkQNCzMoLAoZDwYMO0g3JQ0JBho1CmpSBx8HHy4DJAQxJSxmBgkI", - "location": "aws_s3", - "url": "https://xuexi-courses-storage.firesbox.com/7000102069/replay/be800175-196f-454d-8e79-94d7739b1947.mp3", - "group_id": "7000102069" - }, - "speaker": null, - "group_id": "7000102069" - }, - { - "course_id": 7849, - "message_id": "6eae8740-e636-43d2-a2c3-ddeb8090d88d", - "index": 0, - "user_id": "b76e0418-2d94-4b36-a6dd-497933b79923", - "quote_message_id": "", - "text": "动词:自学、生产、销售、投资、追求…", - "category": "PLAIN_TEXT", - "created_at": "2023-06-28T02:11:05.946315Z", - "speaker": null, - "group_id": "7000102069" - }, - { - "course_id": 7849, - "message_id": "822d191b-b9f8-490d-8c95-344657aa9185", - "index": 0, - "user_id": "b76e0418-2d94-4b36-a6dd-497933b79923", - "quote_message_id": "", - "text": "", - "category": "PLAIN_AUDIO", - "created_at": "2023-06-28T02:11:59.183935Z", - "attachment": { - "id": "5f3e785b-6671-4185-98c6-81e4bdd34719", - "category": "course", - "size": 389805, - "mime_type": "audio/mp3", - "name": "5f3e785b-6671-4185-98c6-81e4bdd34719.mp3", - "duration": 48682, - "waveform": "HHIrhRkZDBYjLAY8GQwJOco9BgY2HAYJRQkNcm1QCwYgCAoGESwyDA5SZggsMjMWEDlLKgUHCVMzI2QnEhQJ", - "location": "aws_s3", - "url": "https://xuexi-courses-storage.firesbox.com/7000102069/replay/5f3e785b-6671-4185-98c6-81e4bdd34719.mp3", - "group_id": "7000102069" - }, - "speaker": null, - "group_id": "7000102069" - }, - { - "course_id": 7849, - "message_id": "23e044fb-9804-43e0-b850-f9e20af1f143", - "index": 0, - "user_id": "b76e0418-2d94-4b36-a6dd-497933b79923", - "quote_message_id": "", - "text": "", - "category": "PLAIN_AUDIO", - "created_at": "2023-06-28T02:12:38.232646Z", - "attachment": { - "id": "b9aabfba-ced9-476c-88ee-9c4362aeb67c", - "category": "course", - "size": 286317, - "mime_type": "audio/mp3", - "name": "b9aabfba-ced9-476c-88ee-9c4362aeb67c.mp3", - "duration": 35738, - "waveform": "HBSJectiNCtlPUMrdVIbJycXTiRQOacuUS4VGEU1Y0c9NTMOeSI+Fi4lRQxXCBFIIh5GVQs/LTEMU1opHAkJ", - "location": "aws_s3", - "url": "https://xuexi-courses-storage.firesbox.com/7000102069/replay/b9aabfba-ced9-476c-88ee-9c4362aeb67c.mp3", - "group_id": "7000102069" - }, - "speaker": null, - "group_id": "7000102069" - }, - { - "course_id": 7849, - "message_id": "692f84fa-9f5d-4a17-afbb-fddc6d4774fa", - "index": 0, - "user_id": "b76e0418-2d94-4b36-a6dd-497933b79923", - "quote_message_id": "", - "text": "", - "category": "PLAIN_AUDIO", - "created_at": "2023-06-28T02:13:39.779849Z", - "attachment": { - "id": "2e12227f-0d8a-453b-9515-f849ad22a13d", - "category": "course", - "size": 480429, - "mime_type": "audio/mp3", - "name": "2e12227f-0d8a-453b-9515-f849ad22a13d.mp3", - "duration": 60005, - "waveform": "FAo0QD4dCxYHB3d5Bxs1CghDII87CyIQAz8jAh4FCloJRXQIEkYTNCNRBjY+BRYDSQhuSAwdSjYuFC0FMQUG", - "location": "aws_s3", - "url": "https://xuexi-courses-storage.firesbox.com/7000102069/replay/2e12227f-0d8a-453b-9515-f849ad22a13d.mp3", - "group_id": "7000102069" - }, - "speaker": null, - "group_id": "7000102069" - }, - { - "course_id": 7849, - "message_id": "11bb7c07-87b6-47c7-bf27-cb6995bb420d", - "index": 0, - "user_id": "b76e0418-2d94-4b36-a6dd-497933b79923", - "quote_message_id": "", - "text": "", - "category": "PLAIN_AUDIO", - "created_at": "2023-06-28T02:13:48.995124Z", - "attachment": { - "id": "8a18be60-565b-46c2-9be4-bdcb89c534af", - "category": "course", - "size": 63021, - "mime_type": "audio/mp3", - "name": "8a18be60-565b-46c2-9be4-bdcb89c534af.mp3", - "duration": 7845, - "waveform": "DQkQJRsLBNp3VwalbG5vWQoHGhJBNxdhTEQoSU1ETi8nITEjVp0jCz1MMCcKDAWjXzJdTDNMLw8KCgsKBwYJ", - "location": "aws_s3", - "url": "https://xuexi-courses-storage.firesbox.com/7000102069/replay/8a18be60-565b-46c2-9be4-bdcb89c534af.mp3", + "url": "https://xuexi-courses-storage.firesbox.com/7000102069/replay/55b3af7f-09f1-4e97-868d-dd5e61b3fcfe.mp3", "group_id": "7000102069" }, "speaker": null, "group_id": "7000102069" } -] \ No newline at end of file +] diff --git a/getAudio.py b/getAudio.py new file mode 100644 index 0000000..104999f --- /dev/null +++ b/getAudio.py @@ -0,0 +1,94 @@ +import json +import time + +import requests +from IPython.display import Audio,display +from pydub import AudioSegment +import os +import random + +with open('audio.json', encoding="UTF-8") as f: + audios = json.load(f) +# print(type(audios[1])) # Output: dict +# TODO: 优化代码 + +course_id = str(audios[1]['course_id']) +os.makedirs(course_id, exist_ok=True) + +# 遍历 +audio_list = [] +for audio in audios: + # t = random.randint(1, 10) + # time.sleep(1) + category = audio['category'] + # requests.adapters.DEFAULT_RETRIES = 100 + # 获取音频内容 + i = 1 + while(i >= 1): + try: + if category == "PLAIN_AUDIO": + url = audio['attachment']['url'] + # print(url) + audio = requests.get(url) + # print(audio.status_code) + # display(Audio(audio.content)) + audio_list.append(audio.content) + # print(audio['attachment']['url']) + # filename = os.path.basename(url) + # with open(os.path.join(course_id, filename), 'wb') as file: + # file.write(audio.content) + # 获取文本笔记 + elif category == "PLAIN_TEXT": + text = audio['text'] + print(text) + with open(os.path.join(course_id, course_id + 'note.txt'), 'a') as file: + file.write(text) + file.write("\n") + # 获取其他可下载附件 + elif category != "MESSAGE_RECALL": + # print(audio['category']) + if 'attachment' in audio: + url = audio['attachment']['url'] + # print(audio['attachment']['url']) + attachment = requests.get(url) + filename = os.path.basename(url) + with open(os.path.join(course_id, filename), 'wb') as file: + file.write(attachment.content) + # 获取其他内容 + else: + print(audio['category']) + if 'attachment' in audio: + print(audio['attachment']['url']) + i = 0 + except: + i += 1 + print("get file failed") + if 'attachment' in audio: + print(audio['attachment']['url']) + +# 处理获取所有音频文件 +audio_seg_list = [] +for i in audio_list: + with open('temp.mp3', 'wb') as file: + file.write(i) + audio_part = AudioSegment.from_mp3('temp.mp3') + # audio_part = AudioSegment.from_mp3(i) + audio_seg_list.append(audio_part) + +# print(len(audio_seg_list)) +x = sum(audio_seg_list) + +# 递归求和 +# def sumOfList(list, size): +# if (size == 0): +# return 0 +# else: +# return list[size - 1] + sumOfList(list, size - 1) +# +# total = sumOfList(list1, len(list1)) + +audio_name = course_id + '/' + course_id + '.mp3' + +x.export(audio_name, format="mp3") + +display(Audio(audio_name)) \ No newline at end of file diff --git a/getUrl.py b/getUrl.py new file mode 100644 index 0000000..6333004 --- /dev/null +++ b/getUrl.py @@ -0,0 +1,26 @@ +# get all url and text +import json +import requests +from IPython.display import Audio,display +from pydub import AudioSegment +import os + +# get pic url list + + +with open('audio.json', encoding= "UTF-8") as f: + audios = json.load(f) +# print(type(audios[1])) # Output: dict + +course_id = str(audios[1]['course_id']) +# os.makedirs(course_id, exist_ok=True) + +audio_list = [] +for audio in audios: + category = audio['category'] + if category == "PLAIN_IMAGE": + url = audio['attachment']['url'] + print(url) + # with open( course_id + '_pic_url.txt', 'a') as file: + # file.write(url) + # file.write("\n") \ No newline at end of file diff --git a/json_parser.ipynb b/json_parser.ipynb index e86b3ff..14a0a37 100644 --- a/json_parser.ipynb +++ b/json_parser.ipynb @@ -13,30 +13,38 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 2, "metadata": { "collapsed": true, "ExecuteTime": { - "end_time": "2023-06-29T05:38:59.487450300Z", - "start_time": "2023-06-29T05:38:40.469218900Z" + "end_time": "2023-07-05T10:56:39.054587Z", + "start_time": "2023-07-05T10:56:34.185665600Z" } }, "outputs": [ { - "name": "stdout", + "name": "stderr", "output_type": "stream", "text": [ - "自学能力、生产知识、销售知识、投资知识、精神食粮…\n", - "动词:自学、生产、销售、投资、追求…\n" + "C:\\Users\\75254\\PycharmProjects\\dt_audio_down\\venv\\Lib\\site-packages\\pydub\\utils.py:198: RuntimeWarning: Couldn't find ffprobe or avprobe - defaulting to ffprobe, but may not work\n", + " warn(\"Couldn't find ffprobe or avprobe - defaulting to ffprobe, but may not work\", RuntimeWarning)\n" ] }, { - "data": { - "text/plain": "", - "text/html": "\n \n " - }, - "metadata": {}, - "output_type": "display_data" + "ename": "FileNotFoundError", + "evalue": "[WinError 2] 系统找不到指定的文件。", + "output_type": "error", + "traceback": [ + "\u001B[1;31m---------------------------------------------------------------------------\u001B[0m", + "\u001B[1;31mFileNotFoundError\u001B[0m Traceback (most recent call last)", + "Cell \u001B[1;32mIn[2], line 74\u001B[0m\n\u001B[0;32m 72\u001B[0m \u001B[38;5;28;01mwith\u001B[39;00m \u001B[38;5;28mopen\u001B[39m(\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mtemp.mp3\u001B[39m\u001B[38;5;124m'\u001B[39m, \u001B[38;5;124m'\u001B[39m\u001B[38;5;124mwb\u001B[39m\u001B[38;5;124m'\u001B[39m) \u001B[38;5;28;01mas\u001B[39;00m file:\n\u001B[0;32m 73\u001B[0m file\u001B[38;5;241m.\u001B[39mwrite(i)\n\u001B[1;32m---> 74\u001B[0m audio_part \u001B[38;5;241m=\u001B[39m \u001B[43mAudioSegment\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mfrom_mp3\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mtemp.mp3\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m)\u001B[49m\n\u001B[0;32m 75\u001B[0m \u001B[38;5;66;03m# audio_part = AudioSegment.from_mp3(i)\u001B[39;00m\n\u001B[0;32m 76\u001B[0m audio_seg_list\u001B[38;5;241m.\u001B[39mappend(audio_part)\n", + "File \u001B[1;32m~\\PycharmProjects\\dt_audio_down\\venv\\Lib\\site-packages\\pydub\\audio_segment.py:796\u001B[0m, in \u001B[0;36mAudioSegment.from_mp3\u001B[1;34m(cls, file, parameters)\u001B[0m\n\u001B[0;32m 794\u001B[0m \u001B[38;5;129m@classmethod\u001B[39m\n\u001B[0;32m 795\u001B[0m \u001B[38;5;28;01mdef\u001B[39;00m \u001B[38;5;21mfrom_mp3\u001B[39m(\u001B[38;5;28mcls\u001B[39m, file, parameters\u001B[38;5;241m=\u001B[39m\u001B[38;5;28;01mNone\u001B[39;00m):\n\u001B[1;32m--> 796\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[38;5;28;43mcls\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mfrom_file\u001B[49m\u001B[43m(\u001B[49m\u001B[43mfile\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mmp3\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mparameters\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mparameters\u001B[49m\u001B[43m)\u001B[49m\n", + "File \u001B[1;32m~\\PycharmProjects\\dt_audio_down\\venv\\Lib\\site-packages\\pydub\\audio_segment.py:728\u001B[0m, in \u001B[0;36mAudioSegment.from_file\u001B[1;34m(cls, file, format, codec, parameters, start_second, duration, **kwargs)\u001B[0m\n\u001B[0;32m 726\u001B[0m info \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;01mNone\u001B[39;00m\n\u001B[0;32m 727\u001B[0m \u001B[38;5;28;01melse\u001B[39;00m:\n\u001B[1;32m--> 728\u001B[0m info \u001B[38;5;241m=\u001B[39m \u001B[43mmediainfo_json\u001B[49m\u001B[43m(\u001B[49m\u001B[43morig_file\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mread_ahead_limit\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mread_ahead_limit\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 729\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m info:\n\u001B[0;32m 730\u001B[0m audio_streams \u001B[38;5;241m=\u001B[39m [x \u001B[38;5;28;01mfor\u001B[39;00m x \u001B[38;5;129;01min\u001B[39;00m info[\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mstreams\u001B[39m\u001B[38;5;124m'\u001B[39m]\n\u001B[0;32m 731\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m x[\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mcodec_type\u001B[39m\u001B[38;5;124m'\u001B[39m] \u001B[38;5;241m==\u001B[39m \u001B[38;5;124m'\u001B[39m\u001B[38;5;124maudio\u001B[39m\u001B[38;5;124m'\u001B[39m]\n", + "File \u001B[1;32m~\\PycharmProjects\\dt_audio_down\\venv\\Lib\\site-packages\\pydub\\utils.py:274\u001B[0m, in \u001B[0;36mmediainfo_json\u001B[1;34m(filepath, read_ahead_limit)\u001B[0m\n\u001B[0;32m 271\u001B[0m file\u001B[38;5;241m.\u001B[39mclose()\n\u001B[0;32m 273\u001B[0m command \u001B[38;5;241m=\u001B[39m [prober, \u001B[38;5;124m'\u001B[39m\u001B[38;5;124m-of\u001B[39m\u001B[38;5;124m'\u001B[39m, \u001B[38;5;124m'\u001B[39m\u001B[38;5;124mjson\u001B[39m\u001B[38;5;124m'\u001B[39m] \u001B[38;5;241m+\u001B[39m command_args\n\u001B[1;32m--> 274\u001B[0m res \u001B[38;5;241m=\u001B[39m \u001B[43mPopen\u001B[49m\u001B[43m(\u001B[49m\u001B[43mcommand\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mstdin\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mstdin_parameter\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mstdout\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mPIPE\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mstderr\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mPIPE\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 275\u001B[0m output, stderr \u001B[38;5;241m=\u001B[39m res\u001B[38;5;241m.\u001B[39mcommunicate(\u001B[38;5;28minput\u001B[39m\u001B[38;5;241m=\u001B[39mstdin_data)\n\u001B[0;32m 276\u001B[0m output \u001B[38;5;241m=\u001B[39m output\u001B[38;5;241m.\u001B[39mdecode(\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mutf-8\u001B[39m\u001B[38;5;124m\"\u001B[39m, \u001B[38;5;124m'\u001B[39m\u001B[38;5;124mignore\u001B[39m\u001B[38;5;124m'\u001B[39m)\n", + "File \u001B[1;32mC:\\Program Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.11_3.11.1264.0_x64__qbz5n2kfra8p0\\Lib\\subprocess.py:1026\u001B[0m, in \u001B[0;36mPopen.__init__\u001B[1;34m(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, user, group, extra_groups, encoding, errors, text, umask, pipesize, process_group)\u001B[0m\n\u001B[0;32m 1022\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mtext_mode:\n\u001B[0;32m 1023\u001B[0m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mstderr \u001B[38;5;241m=\u001B[39m io\u001B[38;5;241m.\u001B[39mTextIOWrapper(\u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mstderr,\n\u001B[0;32m 1024\u001B[0m encoding\u001B[38;5;241m=\u001B[39mencoding, errors\u001B[38;5;241m=\u001B[39merrors)\n\u001B[1;32m-> 1026\u001B[0m \u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43m_execute_child\u001B[49m\u001B[43m(\u001B[49m\u001B[43margs\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mexecutable\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mpreexec_fn\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mclose_fds\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 1027\u001B[0m \u001B[43m \u001B[49m\u001B[43mpass_fds\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mcwd\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43menv\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 1028\u001B[0m \u001B[43m \u001B[49m\u001B[43mstartupinfo\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mcreationflags\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mshell\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 1029\u001B[0m \u001B[43m \u001B[49m\u001B[43mp2cread\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mp2cwrite\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 1030\u001B[0m \u001B[43m \u001B[49m\u001B[43mc2pread\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mc2pwrite\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 1031\u001B[0m \u001B[43m \u001B[49m\u001B[43merrread\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43merrwrite\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 1032\u001B[0m \u001B[43m \u001B[49m\u001B[43mrestore_signals\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 1033\u001B[0m \u001B[43m \u001B[49m\u001B[43mgid\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mgids\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43muid\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mumask\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 1034\u001B[0m \u001B[43m \u001B[49m\u001B[43mstart_new_session\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mprocess_group\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 1035\u001B[0m \u001B[38;5;28;01mexcept\u001B[39;00m:\n\u001B[0;32m 1036\u001B[0m \u001B[38;5;66;03m# Cleanup if the child failed starting.\u001B[39;00m\n\u001B[0;32m 1037\u001B[0m \u001B[38;5;28;01mfor\u001B[39;00m f \u001B[38;5;129;01min\u001B[39;00m \u001B[38;5;28mfilter\u001B[39m(\u001B[38;5;28;01mNone\u001B[39;00m, (\u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mstdin, \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mstdout, \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mstderr)):\n", + "File \u001B[1;32mC:\\Program Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.11_3.11.1264.0_x64__qbz5n2kfra8p0\\Lib\\subprocess.py:1538\u001B[0m, in \u001B[0;36mPopen._execute_child\u001B[1;34m(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, unused_restore_signals, unused_gid, unused_gids, unused_uid, unused_umask, unused_start_new_session, unused_process_group)\u001B[0m\n\u001B[0;32m 1536\u001B[0m \u001B[38;5;66;03m# Start the process\u001B[39;00m\n\u001B[0;32m 1537\u001B[0m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[1;32m-> 1538\u001B[0m hp, ht, pid, tid \u001B[38;5;241m=\u001B[39m \u001B[43m_winapi\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mCreateProcess\u001B[49m\u001B[43m(\u001B[49m\u001B[43mexecutable\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43margs\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 1539\u001B[0m \u001B[43m \u001B[49m\u001B[38;5;66;43;03m# no special security\u001B[39;49;00m\n\u001B[0;32m 1540\u001B[0m \u001B[43m \u001B[49m\u001B[38;5;28;43;01mNone\u001B[39;49;00m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;28;43;01mNone\u001B[39;49;00m\u001B[43m,\u001B[49m\n\u001B[0;32m 1541\u001B[0m \u001B[43m \u001B[49m\u001B[38;5;28;43mint\u001B[39;49m\u001B[43m(\u001B[49m\u001B[38;5;129;43;01mnot\u001B[39;49;00m\u001B[43m \u001B[49m\u001B[43mclose_fds\u001B[49m\u001B[43m)\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 1542\u001B[0m \u001B[43m \u001B[49m\u001B[43mcreationflags\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 1543\u001B[0m \u001B[43m \u001B[49m\u001B[43menv\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 1544\u001B[0m \u001B[43m \u001B[49m\u001B[43mcwd\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 1545\u001B[0m \u001B[43m \u001B[49m\u001B[43mstartupinfo\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 1546\u001B[0m \u001B[38;5;28;01mfinally\u001B[39;00m:\n\u001B[0;32m 1547\u001B[0m \u001B[38;5;66;03m# Child is launched. Close the parent's copy of those pipe\u001B[39;00m\n\u001B[0;32m 1548\u001B[0m \u001B[38;5;66;03m# handles that only the child should have open. You need\u001B[39;00m\n\u001B[1;32m (...)\u001B[0m\n\u001B[0;32m 1551\u001B[0m \u001B[38;5;66;03m# pipe will not close when the child process exits and the\u001B[39;00m\n\u001B[0;32m 1552\u001B[0m \u001B[38;5;66;03m# ReadFile will hang.\u001B[39;00m\n\u001B[0;32m 1553\u001B[0m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_close_pipe_fds(p2cread, p2cwrite,\n\u001B[0;32m 1554\u001B[0m c2pread, c2pwrite,\n\u001B[0;32m 1555\u001B[0m errread, errwrite)\n", + "\u001B[1;31mFileNotFoundError\u001B[0m: [WinError 2] 系统找不到指定的文件。" + ] } ], "source": [ @@ -49,7 +57,7 @@ "import os\n", "import random\n", "\n", - "with open('audio.json') as f:\n", + "with open('audio.json', encoding=\"UTF-8\") as f:\n", " audios = json.load(f)\n", "# print(type(audios[1])) # Output: dict\n", "# TODO: 优化代码\n", @@ -147,8 +155,17 @@ }, { "cell_type": "code", - "execution_count": 3, - "outputs": [], + "execution_count": 1, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\75254\\PycharmProjects\\dt_audio_down\\venv\\Lib\\site-packages\\pydub\\utils.py:170: RuntimeWarning: Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work\n", + " warn(\"Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work\", RuntimeWarning)\n" + ] + } + ], "source": [ "# get all url and text\n", "import json\n", @@ -160,7 +177,7 @@ "# get pic url list\n", "\n", "\n", - "with open('audio.json') as f:\n", + "with open('audio.json', encoding= \"UTF-8\") as f:\n", " audios = json.load(f)\n", "# print(type(audios[1])) # Output: dict\n", "\n", @@ -180,8 +197,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2023-06-29T05:36:22.939744400Z", - "start_time": "2023-06-29T05:36:22.926728100Z" + "end_time": "2023-07-05T10:56:34.184660400Z", + "start_time": "2023-07-05T10:56:34.073384900Z" } } }, diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..e69de29 diff --git a/temp.mp3 b/temp.mp3 index 753da52..72e2471 100644 Binary files a/temp.mp3 and b/temp.mp3 differ diff --git a/爬取网页版本.md b/爬取网页版本.md new file mode 100644 index 0000000..3032ff6 --- /dev/null +++ b/爬取网页版本.md @@ -0,0 +1,21 @@ +# 网页数据获取 + +## 网址 + +- BOX定投课堂 + +https://xuexi-courses.firesbox.com/?utm_source=share#/7000102069/courses + +-定投课堂读书会 + +https://xuexi-courses.firesbox.com/?utm_source=share#/7000104054/courses + +- 写作课 + +https://xuexi-courses.firesbox.com/?utm_source=share#/7000103456/courses + +- 相约七年后 + +https://xuexi-courses.firesbox.com/?utm_source=share#/7000103731/courses + +使用Bearer认证