Запись живого потока YouTube в файл в Python - PullRequest
0 голосов
/ 11 апреля 2019

Я хочу записать прямой эфир YouTube и сохранить его в файл, используя python.

Я пытался использовать библиотеку pytube, но, вероятно, она работает для видео, а не для прямых трансляций.

Я хочузаписать поток и сохранить его в файл с видеоформатом как avi или как-то так.

1 Ответ

0 голосов
/ 07 мая 2019

Я нашел решение и поместил свой код в python:

import urllib
import m3u8
import streamlink


def record_stream(url,filename,iterations):
    last_part = 0
    for i in range(iterations+1):

        streams = streamlink.streams(url)
        stream_url = streams["best"]
        print(stream_url.args['url'])

        m3u8_obj = m3u8.load(stream_url.args['url'])

        previous_part_time = last_part
        last_part = m3u8_obj.segments[-1].program_date_time

        if i >= 1:
         for j in range(1, len(m3u8_obj.segments)):
            if m3u8_obj.segments[-j].program_date_time == previous_part_time:
               break

         print(j)

         file = open(filename + ".ts", "ab+")
         for i in range(j-1,0,-1):
            with urllib.request.urlopen(m3u8_obj.segments[-i].uri) as response:
               html = response.read()
               file.write(html)


url = "https://www.youtube.com/watch?v=BgKGctL0u1U"
record_stream(url,"file",10)

10 означает 10 итераций, если порции имеют 2 с, это означает, что записывает 20 с потока

...