“枯藤老树昏鸦,晚饭有鱼有虾,空调WIFI西瓜,夕阳西下,今晚电视看啥。” 夏天的晚上,很多人喜欢躺在卧室床上追剧,享受这种慢节奏的生活体验。这时候卧室的台式机就派上了用场,那么怎样才是台式机上看电视的正确方式呢? 基本有两个方案:手机投屏到PC,或者PC端安装网络电视(IPTV)软件。 这里我们选择后者,但是并非安装网络电视软件,而是借助PotPlayer播放器(完美解码)实现。 首先安利一下这款播放器,它是韩国的一款软件,在国内重新包装了一下发布。最大的特点是无广告、无广告、无广告,再就是功能强大、强大、强大,什么视频处理、各种流式播放都支持。而且颜值也在线,典型的极简主义风格(操作全靠右键):

ac09f348c6594bfd9548e26a97bd8310.png

它支持导入m3u文件,也就是m3u8地址集。 用记事本打开一个网络上下载的m3u文件看看是什么样子:

e7e2a7561be6391f84fedf6bd7312059.png

以上大家看到的,其实是几乎所有的网络电视、机顶盒、网络盒子的工作原理,无非就是套一个播放器来播放这些地址。所以对于一款网络电视软件来说,最重要的其实是这些源。可以说得播放源者得天下,当然还要合法,如果商用可能需要授权。 无意间发现北邮的一个开放测试网站,里面有大部分的电视台稳定地址:

c3f089e5798c20058b0a7dd678862515.png

于是写个最简单的爬虫把地址扒到了一个字典中,同时构造了m3u文件:
import requests,reres=requests.get("http://ivi.bupt.edu.cn/")#请求网址res.encoding='utf8'#指定编码names=re.findall(r'(?<=\

).*?(?=\)',res.text)#正则匹配所有p标签

urls=re.findall(r'(?<=\dic=dict(zip(names,urls))with open("sources.py",'w',encoding='utf8') as f: f.write("dic="+str(dic)) for i in range(len(names)): m3uUrl="http://ivi.bupt.edu.cn/hls/"+urls[i] with open("sources.m3u",'a') as f1: f1.write('#EXTINF:-1,'+names[i]+"\n")#电视台名字 f1.write(m3uUrl+"\n")#播放源地址 导入到PotPlayer中,大概是这样:

dcc839bfcbbdfed1aeee31532cb6217e.png

这样就可以愉快的看电视了。 这个软件还支持命令行传入地址播放,所以我们完全可以脑洞打开,写一个网页,在手机上选择台点击,电脑端利用Flask接收到参数,然后调用PotPlayer播放。感兴趣的,可以进一步玩玩。
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐