我使用YouTube API按块上传视频块(请参阅下面的代码).但是,上传有时会因较大的文件(+ 1GB)而失败,但并非总是如此.上传显示已完成,但只能播放几分钟,其余内容将被截断.我做了一些研究,但没有取得明显的成功.我的问题现在:
非常感谢任何正确方向的帮助/领导.我甚至会打出500分的赏金,因为这让我发疯了(刚刚完成......)
附录:脚本在命令行上通过Gearman Server运行,并带有set_time_limit(0);
set.代码/功能只是一个提取(运行较小的文件,有时甚至高达10GB).
编辑:根据airgistal和GeorgeQ上面的评论,我已经改变了while循环直接读取块(feof()
不再是)并将状态保存到数据库.
/*
Uploads one file to youtube chunk by chunk
*/
function uploadFile($dbfile) {
$client = $this->client;
$youtube = new Google_Service_YouTube($client);
$htmlBody = "";
try {
// Create a snippet with title, description, tags and category ID
// Create an asset resource and set its snippet metadata and type.
// This example sets the video's title, description, keyword tags, and
// …
Run Code Online (Sandbox Code Playgroud) 我正在将大型文件(1gb +)从Dropbox传输到YouTube,并希望告知用户交易可能需要多长时间.有没有办法测量PHP中的网络流量?
我确实找到了linux shell的解决方案(如何衡量网络性能(如何测试网络协议))但不是PHP.
除了告知用户我想检查保证带宽(100 mbit/s),因为我遇到了几次网络问题(带宽太低).
我现在用的是梦幻般的Python的社会身份验证使用Django
.
但是,此时,每次调用该进程时,都会创建一个新用户.我只需要来自进程的令牌(access_token
和refresh_token
).怎么能实现这一目标?通过某种管道?
这是我目前的pipeline.py
代码(缩写):
def get_token(backend, user, response, *args, **kwargs):
# get token from the oauth2 flow
social = user.social_auth.get(provider='google-oauth2')
access_token = social.extra_data['access_token']
refresh_token = social.extra_data.get('refresh_token')
Run Code Online (Sandbox Code Playgroud)
和相应的settings.py
文件:
# set django session
SESSION_EXPIRE_AT_BROWSER_CLOSE = True
# psa settings
SOCIAL_AUTH_URL_NAMESPACE = 'social'
# see http://psa.matiasaguirre.net/docs/configuration/settings.html
SOCIAL_AUTH_UUID_LENGTH = 32
AUTHENTICATION_BACKENDS = (
#'social.backends.facebook.FacebookOAuth2',
'social.backends.google.GoogleOAuth2',
#'social.backends.twitter.TwitterOAuth',
'django.contrib.auth.backends.ModelBackend',
)
SOCIAL_AUTH_PIPELINE = (
'social.pipeline.social_auth.social_details',
'social.pipeline.social_auth.social_uid',
'social.pipeline.social_auth.auth_allowed',
'social.pipeline.social_auth.social_user',
'social.pipeline.user.get_username',
'social.pipeline.user.create_user',
'social.pipeline.social_auth.associate_user',
'social.pipeline.social_auth.load_extra_data',
'social.pipeline.user.user_details',
'youtube.pipeline.get_token',
)
Run Code Online (Sandbox Code Playgroud) 我有这个数据集:
ID Set Type Count
1 1 1 A NA
2 2 1 R NA
3 3 1 R NA
4 4 1 U NA
5 5 1 U NA
6 6 1 U NA
7 7 2 A NA
8 8 3 R NA
9 9 3 R NA
Run Code Online (Sandbox Code Playgroud)
作为dputs
:
mystart <- structure(list(ID = 1:9, Set = c(1L, 1L, 1L, 1L, 1L, 1L, 2L,
3L, 3L), Type = structure(c(1L, 2L, 2L, 3L, 3L, 3L, 1L, 2L, 2L …
Run Code Online (Sandbox Code Playgroud) 如标题所示,可以通过YouTube的上传功能上传和处理视频文件.但是,当我尝试以编程方式(通过OAuth2和YouTube API v3)上传时,它始终处于0%处理状态.在SO上有任何youtubers吗?是否有一些特殊的上传问题论坛?(PS,有一个类似的问题没有结果.)
更新错误:深入挖掘,似乎与视频元数据有关.偶尔会出现以下错误:
无法启动可恢复上传(HTTP 400:youtube.video,请求元数据指定无效的视频标题.)
不幸的是,YouTube的API v3的错误页面并没有真正遭受logorrhoea ...有谁知道这个错误意味着什么?
更新的代码: 目前文件是按块块上传的(通常效果很好,但不是所有时间):
function uploadFile($dbfile) {
$client = $this->client;
$youtube = new Google_Service_YouTube($client);
$htmlBody = "";
try {
// Create a snippet with title, description, tags and category ID
// Create an asset resource and set its snippet metadata and type.
// This example sets the video's title, description, keyword tags, and
// video category.
$snippet = new Google_Service_YouTube_VideoSnippet();
$snippet->setTitle($dbfile->displayname);
// Numeric video category. See
// https://developers.google.com/youtube/v3/docs/videoCategories/list …
Run Code Online (Sandbox Code Playgroud) 我有一个数字列表:
a = [3, 6, 20, 24, 36, 92, 130]
Run Code Online (Sandbox Code Playgroud)
以及一系列条件:
b = ["2", "5", "20", "range(50,100)", ">120"]
Run Code Online (Sandbox Code Playgroud)
我想检查'a'中的数字是否符合'b'中的一个条件,如果是,请将这些数字放在列表'c'中
在上述情况中:
c = [20, 92, 130]
Run Code Online (Sandbox Code Playgroud)
我创建了这个代码似乎做了我想要的:
c = []
for x in a:
for y in b:
if "range" in y:
rangelist = list(eval(y))
if x in rangelist:
c.append(x)
elif ">" in y or "<" in y:
if eval(str(x) + y):
c.append(x)
else:
if x == eval(y):
c.append(x)
Run Code Online (Sandbox Code Playgroud)
不过我的名单'a'可能非常大.
是否有更简单,更快捷的方式来获得我想要的东西?
我目前正在尝试从始终采用相同格式的字符串中提取数据(从不支持API的社交网站中抓取)
字符串示例
53.2k Followers, 11 Following, 1,396 Posts
5m Followers, 83 Following, 1.1m Posts
Run Code Online (Sandbox Code Playgroud)
我当前正在使用以下正则表达式:“ [0-9] {1,5}([,。] [0-9] {1,4})?” 获取数字部分,保留逗号和点分隔符。
它产生如下结果
53.2, 11, 1,396
5, 83, 1.1
Run Code Online (Sandbox Code Playgroud)
我确实需要一个正则表达式,即使它是一个空格,它也将在数字部分之后捕获字符。即
53.2k, 11 , 1,396
5m, 83 , 1.1m
Run Code Online (Sandbox Code Playgroud)
任何帮助是极大的赞赏
R代码再现
library(stringr)
string1 <- ("536.2k Followers, 83 Following, 1,396 Posts")
string2 <- ("5m Followers, 83 Following, 1.1m Posts")
info <- str_extract_all(string1,"[0-9]{1,5}([,.][0-9]{1,4})?")
info2 <- str_extract_all(string2,"[0-9]{1,5}([,.][0-9]{1,4})?")
info
info2
Run Code Online (Sandbox Code Playgroud) 正如标题所示,我正在尝试.h2.db
使用DataGrip
on 打开文件MacOS
.但是,我一直在收到错误
Unsupported database file version or invalid file header in file
Run Code Online (Sandbox Code Playgroud)
随着错误代码
[90048-192]
Run Code Online (Sandbox Code Playgroud)
如何检查实际的数据库文件版本以及如何获取正确的驱动程序文件(?)?
我有一个数据框 df1 如下 -
ID Count
11 345
22 456
33 786
44 765
55 NA
66 888
77 NA
Run Code Online (Sandbox Code Playgroud)
然后我有一个 df2 如下 -
ID Count
11 536
22 654
33 786
44 999
55 890
66 111
77 654
Run Code Online (Sandbox Code Playgroud)
我希望将NA
in 中的值df1
替换为df2
这些特定 id 中的值。
结果df3
应该是:
ID Count
11 345
22 456
33 786
44 765
55 890
66 888
77 654
Run Code Online (Sandbox Code Playgroud)
任何帮助都会非常感谢
我试图将d
svg文件中的路径标记上的属性拆分为标记.
这个比较容易:
d = "M 2 -12 C 5 15 21 19 27 -2 C 17 12 -3 40 5 7"
tokens = d.split(/[\s,]/)
Run Code Online (Sandbox Code Playgroud)
但这也是一个有效的d
属性:
d = "M2-12C5,15,21,19,27-2C17,12-3,40,5,7"
Run Code Online (Sandbox Code Playgroud)
棘手的部分是字母,数字不再分开,负数只使用负号作为分隔符.如何创建处理此问题的正则表达式?
规则似乎是:
我知道我可以使用环视,例如:
tokens = pathdef.split(/(?<=\d)(?=\D)|(?<=\D)(?=\d)/)
Run Code Online (Sandbox Code Playgroud)
我在制作单个正则表达式时也遇到了麻烦,这个正则表达式也会在减号上分开,并用数字保留减号.
上面的代码应该标记为如下:
[ 'M', '2', '-12', 'C', '5', '15', '21', '19', '27', '-2', 'C', '17', '12', '-3', '40', '5', '7' ]
Run Code Online (Sandbox Code Playgroud) php ×3
r ×3
python ×2
regex ×2
youtube ×2
youtube-api ×2
dataframe ×1
django ×1
dplyr ×1
dropbox-api ×1
h2 ×1
java ×1
javascript ×1
list ×1
oauth-2.0 ×1
python-3.x ×1