【问题标题】:Can I read reddit video info using praw?我可以使用 praw 阅读 reddit 视频信息吗?
【发布时间】:2021-05-14 06:40:08
【问题描述】:

我正在学习使用 PRAW 进行配置或通过 python 读取 reddit 上的信息。

现在我想在线阅读视频内容(大小、时长等)(我从我的帐户上传了一个视频作为测试视频),我应该使用哪个实例以及调用哪个方法?

刚刚看到PRAW可以提交视频,请问有什么方法可以查看视频详情吗?

【问题讨论】:

    标签: python reddit praw


    【解决方案1】:

    我认为PRAW 只让submitInlineVideo 一起查看

    您可以尝试从 subreddit 中抓取它

    import praw
    
    r = praw.Reddit(<auth info here>)
    
    sub = r.subreddit("some_sub")
    
    posts = sub.hot(limit=100)
    
    vids = []
    
    for p in posts:
        try:
            url = p.media['reddit_media']['fallback_url']
            url = url.split("?")[0]
            name = p.title[:30].rstrip() + ".mp4"
            vids.append((url, name))
        except:
            pass
    

    【讨论】:

    • 谢谢你的回答,我想你的代码是搜索“some_sub”相关的mp4视频。假设我想获取一些用户在 reddit 主机上发布的特定视频内容(比如我自己发布的视频),我该怎么办?
    【解决方案2】:

    您可以使用 ffmpeg/ffprobe 注意,imgur 上的许多视频在 reddit 上显示时,praw 返回它们时具有 .gifv 扩展名。只需将扩展名更改为 .mp4。

    import subprocess
    vidurl = 'https://i.imgur.com/rEUoCkG.mp4'
    

    这将在列表中提供大量数据:

    pcmd = 'ffprobe -v error -show_format -show_streams {}'.format(vidurl) 
    data = subprocess.check_output(pcmd, shell=True).decode()
    data.splitlines()
    
    
    
    ['[STREAM]',
     'index=0',
     'codec_name=h264',
     'codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10',
     'profile=Constrained Baseline',
     'codec_type=video',
     'codec_tag_string=avc1',
     'codec_tag=0x31637661',
     'width=720',
     'height=720',
     'coded_width=720',
     'coded_height=720',
     'closed_captions=0',
     'has_b_frames=0',
     'sample_aspect_ratio=1:1',
     'display_aspect_ratio=1:1',
     'pix_fmt=yuv420p',
     'level=31',
     'color_range=unknown',
     'color_space=unknown',
     'color_transfer=unknown',
     'color_primaries=unknown',
     'chroma_location=left',
     'field_order=unknown',
     'refs=1',
     'is_avc=true',
     'nal_length_size=4',
     'id=N/A',
     'r_frame_rate=30/1',
     'avg_frame_rate=30/1',
     'time_base=1/15360',
     'start_pts=0',
     'start_time=0.000000',
     'duration_ts=501760',
     'duration=32.666667',
     'bit_rate=1945005',
     'max_bit_rate=N/A',
     'bits_per_raw_sample=8',
     'nb_frames=980',
     'nb_read_frames=N/A',
     'nb_read_packets=N/A',
     'DISPOSITION:default=1',
     'DISPOSITION:dub=0',
     'DISPOSITION:original=0',
     'DISPOSITION:comment=0',
     'DISPOSITION:lyrics=0',
     'DISPOSITION:karaoke=0',
     'DISPOSITION:forced=0',
     'DISPOSITION:hearing_impaired=0',
     'DISPOSITION:visual_impaired=0',
     'DISPOSITION:clean_effects=0',
     'DISPOSITION:attached_pic=0',
     'DISPOSITION:timed_thumbnails=0',
     'TAG:language=eng',
     'TAG:handler_name=VideoHandler',
     'TAG:vendor_id=[0][0][0][0]',
     '[/STREAM]',
     '[FORMAT]',
     'filename=https://i.imgur.com/rEUoCkG.mp4',
     'nb_streams=1',
     'nb_programs=0',
     'format_name=mov,mp4,m4a,3gp,3g2,mj2',
     'format_long_name=QuickTime / MOV',
     'start_time=0.000000',
     'duration=32.667000',
     'size=7947044',
     'bit_rate=1946194',
     'probe_score=100',
     'TAG:major_brand=isom',
     'TAG:minor_version=512',
     'TAG:compatible_brands=isomiso2avc1mp41',
     "TAG:title=''",
     'TAG:encoder=Lavf58.12.100',
     "TAG:comment=''",
     '[/FORMAT]']
    

    如果可用,这会将其缩减为选中:

    pcmd = 'ffprobe -v error -select_streams v:0 -show_entries stream=avg_frame_rate,size,width,height,duration,bit_rate -of default=noprint_wrappers=1 {}'.format(vidurl)
    
    
    ['width=720',
     'height=720',
     'avg_frame_rate=30/1',
     'duration=32.666667',
     'bit_rate=1945005']
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-20
      • 2015-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多