I am writing youtube converter script with library of python pytube. Pytube has a maximum downloadable video length. I need to learn this length and notify the user if the video in the link exceeds this length.
Where can I find this length?
Related
https://onlyconnect.s3.eu-west-2.amazonaws.com/Audio/s16e2-11-Toyah-Brave+New+World.mp3
I'm trying to make a discord bot that plays certain mp3 files hosted online in a voice channel on request. I have the following audio file which is easily callable but none of the audio source classes in Discord PY which can be played using voice_client.play() seem to work:
For example:
voiceclient.play(discord.FFmpegPCMAudio("https://onlyconnect.s3.eu-west-2.amazonaws.com/Audio/s16e2-11-Toyah-Brave+New+World.mp3"))
leads to the exception:
Command raised an exception: ClientException: ffmpeg was not found.
I don't really understand what the different audio source building objects represent. According to the documentation, the PCMAUDIO object "reads byte data representing raw PCM." but I cannot find anywhere to convert an mp3 into raw byte data representing PCM so I am still stumped.
I was working on a similar project a few months ago, but I used the ffmpeg module to read the audio file. If you need help setting it up, lmk
im trying to read youtube videos before the downloading process finish.
from pytube import YouTube
url="https://www.youtube.com/watch?v=izFplWRNlnw"
yt = YouTube(url)
video = yt.streams.get_highest_resolution()
video.download()
i want to access each chunk as .mp4 for example before the download completed.
VLC Player can play the uncompleted file data.
so how can i read each chunk of the progressive stream.
i used to solve this problem pafy. But now this library not working, because youtube change something and pafy haven't any udate. So i need to new way.
I found new library.The library is called Pytube https://pypi.org/project/pytube/
I am planning to write my own live stream server in python using the HLS protocol for a small project.
My idea is to use Amazon S3 for storage and have the python server just output the m3u8 file.
This is all straightforward, now to the problem: I want to stream live video from a camera over an unreliable network and if there is a congestion the player could end up with completing playing of the last file referenced in the m3u8 file. Can i in some way mark the stream as a live stream having the player try again reloading the m3u8 for a specific time looking for a next segment or how should live streaming using HLS be handled?
Maybe live streaming over HLS is not supported?
This is explictly allowed in the HLS spec as a "live Playlist". There are a few things you need to be aware of, but notably, from section 6.2.1:
The server MUST NOT change the Media Playlist file, except to:
o Append lines to it (Section 6.2.1).
And if we take a look at Section 4.3.3.4:
The EXT-X-ENDLIST tag indicates that no more Media Segments will be added to the Media Playlist file. It MAY occur anywhere in the Media Playlist file.
In other words, if a playlist does not include the #EXT-X-ENDLIST tag, it's expected that the player will keep loading the playlist from whatever source it originally loaded it from with some frequency, looking for the server to append segments to the playlist.
Most players will do this taking into account current network conditions so they have a chance to get new segments before the playback is caught up. If the server needs to interrupt the segments, or otherwise introduce a gap, it has the responsibility to introduce a #EXT-X-DISCONTINUITY-SEQUENCE tag.
Apple provides a more concrete example of a Live Playlist on their developer website.
I am using pytube to download subtitles of youtube video. I want to download them without time information. I have checked their API documentation but I am unable to find option to get subtitle without timer. Following is my code.
from pytube import YouTube
source = YouTube('https://www.youtube.com/watch?v=6Af6b_wyiwI')
en_caption = source.captions.get_by_language_code('en')
en_caption_convert_to_srt =(en_caption.generate_srt_captions())
print(en_caption_convert_to_srt)