douyutv: คุณกำลังดูกระทู้
网上搜索各种平台的直播源地址都是满天飞,但是经常会有失效的时候,因为官方也会定期的升级系统修改各种参数或链接让直播源不能永久,所以敝人一直崇尚的是授人以鱼不如授人以渔
,与其给直播源别人,不如教大家如何去爬取直播源,就算失效了也不怕。
NỘI DUNG BÀI VIẾT
0. 前言
继虎牙直播后,网上说斗鱼的直播源是最难抓的,哦?
在抓取之前,需要了解视频直播源的分类和区别,可以自行了解hls,flv,m3u8等知识。
Tips: 本教程只是教大家如何利用前端调试技巧和爬虫基本操作,不作为商业用途,各位童鞋耗子尾汁。
所用工具:
- 浏览器
- Postman
- WebStorm
- VLC media player
所用技术:
- 前端
- PHP
1. 直播源查找
先打开斗鱼的一个直播间,当然先看电影频道啦:
在页面的请求中搜一下.flv
、.m3u8
竟然找不到:
那么地址显然不是直接从后台带来的,那么就是ajax请求来的,从ajax请求中找到了一个请求:
很显然,这里有个地址,使用VLC播放一下,额。。。不好意思,刚好电影放完。但至少这个地址是可用的。
2. 浏览器请求过程分析及思路
Request URL: https://m.douyu.com/api/room/ratestream
Form Data:
- v: 250120210110
- did: 5533423942ce86e564901f2200001631
- tt: 1610256007
- sign: 00121038e82b65413972da17c6fdaa1d
- ver: 22011191
- rid: 3637778
- rate: -1
多打开几个直播间,可以发现有几个参数是固定的:did
、ver
、rid
是直播间id、v
是”2501″加当前日期、tt
是当前时间戳、sign
是签名、rate
是清晰度(-1是默认的)。
那么现在就只有sign是比较麻烦的,它和当前时间戳是相关联的,后面解析可以看到。
找到发ajax
请求的位置,在请求参数data那一行打一个断点,然后再刷新页面或者切换清晰度即可开始调试:
选择window[(0, s.default)(256042, "9f4f419501570ad13334")]
然后右键Evaluate selected text in console
,在控制台可以看到一个函数ub98484234
,经测试这个函数名是固定的,但是函数体里的内容不是固定的
,所以复制出函数没有用。然后r,o,c
分别是直播间ID、did、时间戳,后面"&ver=" + u.VERSION + "&rid=" + r + "&rate=" + e + (f ? "&aid=" + f : "")
都是固定的。
断点进到这个函数里面去看,可以看到这个函数是在页面请求回来的,而每个直播间的这个函数体都是不同的,里面还有个变量需要保存,而这个变量名也不是固定的,但是仔细一看,这个变量和这个函数的三个参数形参名是有关系的,仔细看下(是不是很像):
搜一下,这个变量就在这个函数的下面,是个数组:
思路就有了:
- get请求直播间,获取
ub98484234
函数和变量代码 - 运行这个函数获取
ratestream
请求的参数 - 发送post请求获取直播源地址
3. 模拟实现
服务器代码(PHP版):
room.php
<?php
header
(
'Content-Type: text/html;charset=utf-8'
)
;
header
(
'Access-Control-Allow-Origin:*'
)
;
header
(
'Access-Control-Allow-Methods:POST,GET,OPTIONS,DELETE'
)
;
header
(
'Access-Control-Allow-Credentials: true'
)
;
header
(
'Access-Control-Allow-Headers: Content-Type,Content-Length,Accept-Encoding,X-Requested-with, Origin'
)
;
$page
=
file_get_contents
(
'https://m.douyu.com/'
.
$_GET
[
'rid'
]
)
;
$patt1
=
'/function ub98484234([\w\W]*?)function k927cea2d4369/'
;
preg_match_all
(
$patt1
,
$page
,
$rs
)
;
echo
str_replace
(
"function k927cea2d4369"
,
""
,
$rs
[
]
[
]
)
;
url.php
<?php
header
(
'Content-Type: text/html;charset=utf-8'
)
;
header
(
'Access-Control-Allow-Origin:*'
)
;
header
(
'Access-Control-Allow-Methods:POST,GET,OPTIONS,DELETE'
)
;
header
(
'Access-Control-Allow-Credentials: true'
)
;
header
(
'Access-Control-Allow-Headers: Content-Type,Content-Length,Accept-Encoding,X-Requested-with, Origin'
)
;
$post
=
array
(
"v"
=
>
$_POST
[
'v'
]
,
"did"
=
>
'b9f39b4e631b7973c103209800001631'
,
"tt"
=
>
$_POST
[
'tt'
]
,
"sign"
=
>
$_POST
[
'sign'
]
,
"ver"
=
>
22011191
,
"rid"
=
>
$_POST
[
'rid'
]
,
"rate"
=
>
-
1
)
;
$data
=
curl_post
(
'https://m.douyu.com/api/room/ratestream'
,
$post
)
;
echojson
(
$data
)
;
function
curl_post
(
$url
,
$post_data
)
{
$ch
=
curl_init
(
)
;
$headers
=
array
(
'Accept'
=
>
'*/*'
,
'User-Agent'
=
>
'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88'
,
'Accept-Language'
=
>
'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6'
,
'Content-Type'
=
>
'application/x-www-form-urlencoded'
)
;
curl_setopt
(
$ch
,
CURLOPT_URL
,
$url
)
;
curl_setopt
(
$ch
,
CURLOPT_HEADER
,
)
;
curl_setopt
(
$ch
,
CURLOPT_IPRESOLVE
,
1
)
;
curl_setopt
(
$ch
,
CURLOPT_POST
,
1
)
;
curl_setopt
(
$ch
,
CURLOPT_POSTFIELDS
,
http_build_query
(
$post_data
)
)
;
curl_setopt
(
$ch
,
CURLOPT_RETURNTRANSFER
,
1
)
;
curl_setopt
(
$ch
,
CURLOPT_HTTPHEADER
,
$headers
)
;
curl_setopt
(
$ch
,
CURLOPT_SSL_VERIFYPEER
,
FALSE
)
;
curl_setopt
(
$ch
,
CURLOPT_SSL_VERIFYHOST
,
FALSE
)
;
$output
=
curl_exec
(
$ch
)
;
curl_close
(
$ch
)
;
return
$output
;
}
function
getParam
(
$key
,
$default
=
''
)
{
return
trim
(
$key
&&
is_string
(
$key
)
?
(
isset
(
$_POST
[
$key
]
)
?
$_POST
[
$key
]
:
(
isset
(
$_GET
[
$key
]
)
?
$_GET
[
$key
]
:
$default
)
)
:
$default
)
;
}
function
echojson
(
$data
)
{
header
(
'Content-type: application/json'
)
;
$callback
=
getParam
(
'callback'
)
;
if
(
$callback
)
{
die
(
htmlspecialchars
(
$callback
)
.
'('
.
$data
.
')'
)
;
}
else
{
die
(
$data
)
;
}
}
前端html
<
script src
=
"
node_modules/crypto-js/crypto-js.js"
>
</
script>
<
script src
=
"
node_modules/jquery/dist/jquery.js"
>
</
script>
<
script>
let
rid =
3637778
;
let
did =
"b9f39b4e631b7973c103209800001631"
;
let
tt =
parseInt
(
(
new
Date
)
.
getTime
(
)
/
1e3
,
10
)
;
let
rate =
-
1
;
$.
ajax
(
{
type:
'get'
,
url:
'https://xxx.com/player/douyu/room.php'
,
data:
{
rid:
rid}
,
success:
function
(
res)
{
eval
(
res)
;
let
param =
ub98484234
(
rid,
did,
tt)
+
"&ver=22011191&rid="
+
rid +
"&rate="
+
rate ;
$.
ajax
(
{
type:
'post'
,
url:
'https://xxx.com/player/douyu/url.php'
,
data:
param,
success:
function
(
res)
{
console.
log
(
res)
;
}
}
)
;
}
}
)
;
</
script>
php
文件放到自己的服务器,然后前端就可以请求到直播源地址:
4. 整合播放器
这里使用的是ckpayer
,官网:https://www.ckplayer.com/
<
script type
=
"
text/javascript"
src
=
"
ckplayer/ckplayer/ckplayer.js"
charset
=
"
utf-8"
data-name
=
"
ckplayer"
>
</
script>
<
div class
=
"
video"
style
="
width
:
600px;
height
:
400px;
"
>
</
div>
<
script type
=
"
text/javascript"
>
var
videoObject =
{
container:
'.video'
,
variable:
'player'
,
html5m3u8:
true
,
video:
'http://hlstct.douyucdn2.cn/dyliveflv1a/3637778raLSXdOdu_2000.m3u8?txSecret=0a8093b41cbff59ba0a56bc4ac39ebce&txTime=5ffacfc5&token=h5-douyu-0-3637778-8fe14247bbe00e18529094c5dcf70532&did=b9f39b4e631b7973c103209800001631&origin=tct&vhost=play2'
,
playbackRate:
false
}
;
var
player =
new
ckplayer
(
videoObject)
;
</
script>
秋名山车神来了!
至于整合就很简单,在ajax获取真实地址后,把url设置到ckplayer就好啦!
这里再提一句,真实无加密源地址的链接其实很短,如下:
http://tx2play1.douyucdn.cn/live/空白替换.flv?uuid=
空白部分就是加密地址的一部分,如加密地址是:http://hlstct.douyucdn2.cn/dyliveflv1a/3637778raLSXdOdu_2000.m3u8?txSecret=bc08048624cbe33fe6492c981a21f415&txTime=5ffadd7c&token=h5-douyu-0-3637778-f9f6e2e79ab5b1ba10762fe2412c8c6b&did=b9f39b4e631b7973c103209800001631&origin=tct&vhost=play2
,那么空白部分就是3637778raLSXdOdu
,结合起来就是:
http://tx2play1.douyucdn.cn/live/3637778raLSXdOdu.flv?uuid=
Tips: 直播间关播后需要重新获取,关闭播放后也需要(否则会报错时间校验出错)。而真实地址是不需要,但是官方也可能修改。
6. 总结
找到直播源很简单,关键是调试并实现它,不要怕麻烦,本人能力有限,斗鱼直播源花了三个晚上吧,各位如有更好的方法请留言讨论,多多指教。
[Update] 如何养斗鱼 | douyutv – Vietnamnhanvan
饲养斗鱼是个有意思的爱好。但是这也并不是轻松简单的爱好。饲养斗鱼要占用你许多的时间和精力,而且需要一定的金钱上的付出,但是你也会有很好的回报。
部分1
做好准备工作,选择斗鱼来饲养
1
首先尽量多了解这方面的知识和行情。不管养什么宠物前,都要先了解这个宠物的方方面面。了解饲养斗鱼须知。有很多网上的资源和书籍可供你学习。斗鱼一次产卵可以达到600个卵子的数量,这意味着你很快就能繁殖出500多条小斗鱼来饲养!你应该先从别人的经验中学习和了解斗鱼的知识,才不至于轮到你饲养的时候手忙脚乱,不知如何应对问题。
- 你是打算作遗传育种?养鱼观赏?还是准备批量繁殖供应当地的宠物商店?
- 或者你就是喜欢斗鱼,养来自己玩,并且想提高自己的饲养水平?
- 饲养斗鱼来观赏或是繁殖供应当地的宠物商店,会是一项很大的任务,需要投入大量的时间、场地和金钱。由于养殖斗鱼起步要求水平高并且供应成本也高,要想谋利非常困难,所以在目前阶段把养斗鱼做成生意应该不是你的目标。
2
设置斗鱼缸。当你准备开始养斗鱼,首先要做的当然是准备鱼缸。按图所示准备两个鱼缸。要确保两个鱼缸的水都能循环。
3
去找一对可以繁殖的斗鱼。斗鱼最好是从小养起。你可以在网上或是在当地宠物商店,购买一对刚刚进入繁育时期的斗鱼。如果你能在当地找到买到斗鱼,那么这是一个很好的了解和咨询有关养斗鱼的事情的渠道。确保公斗鱼和母斗鱼的体型大小差不多,为了防止繁育失败,可以买两对斗鱼。
- 多数宠物商店的斗鱼鱼龄太大了,已经不适合来做繁育,并且你也不了解这些鱼的基因背景。但是作为起步和练手,还是可以的。
- 如果你是从宠物商店买的斗鱼来繁殖,要注意很可能你培育的鱼苗会找不到买家或是新的地方生活,因为多数的宠物商店都不会购买它们。因为你并不了解你所杂交的斗鱼的基因特征,有可能繁育的鱼苗是病态的,或是人们不希望看到的样子。
部分2
给斗鱼打造舒适的生活条件
1
给斗鱼安家。最好让斗鱼先安下家来并适应几个月,适应了新环境后,再准备让它们交配繁殖。记住,公斗鱼最佳的繁育年龄是不超过14个月大小。在你有一段长时间不受打断的自由时间后,再来计划繁育小斗鱼。
- 因为在你让公斗鱼和母斗鱼见面后,在超过2个月的时间里,你每天都要拿出至少几个小时来观察、照顾这一对斗鱼和将来它们的小鱼。确保这一段时间你没有出外休假、出差、或是工作高度紧张。
2
设置斗鱼繁育缸。斗鱼缸应该容有19-38升水,可以取走的分隔器,一些鱼儿藏身的地方,一个调整合适的过滤器(比如水泵加海绵组合的过滤器),以及一个保持水温在26.5摄氏度左右的加热器。绝对不要在斗鱼繁育缸中放石子或是其他铺底的东西,因为斗鱼产卵时鱼卵会丢失在这些石子中。在斗鱼繁育缸中只加入13-15厘米高的水,周围环境一定要安静没有打扰,比如不能有其他的鱼,没有鲜艳的色彩,也没有人的活动。
3
准备繁育时,喂给斗鱼以活食。活的腮足虫或者血吸虫是最佳的选择,其他的鱼虫和昆虫(切碎)等也可以。你可以自己养这些活的鱼食,或者从宠物商店购买,避免野生的鱼食,因为野生的鱼食可能会带有细菌、砂土和化学物质。如果无法得到活的鱼食,可以试着将腮足虫或是血吸虫冷冻起来,慢慢来喂斗鱼。
4
开始筹备鱼苗的食物。斗鱼鱼苗非常小,它们只吃活的鱼食,所以你要准备非常非常小的活的鱼食,给孵化出的斗鱼鱼苗吃。现在就着手开始准备,这样在几个星期后需要的时候,你就有充分的活的鱼食供应给鱼苗了。微型鱼虫可能是最好的鱼苗的食物,但是有些养殖者会选纤毛虫或是醋线虫来喂斗鱼鱼苗。也可以喂腮足虫幼虫,但是只能与其他鱼食搭配着喂,因为过多的腮足虫幼虫会导致鱼鳔功能紊乱。
5
让两只鱼见面配对。当活的鱼食已经准备得充分和妥当,而且已经用活的鱼食喂养了斗鱼一两个星期,现在可以让两只要配对的斗鱼见面了。让公斗鱼和母斗鱼可以相互见面,但是无法接触。你可以将它们各自的鱼缸挨在一起,或者把它们放进一个鱼缸里,但是中间有玻璃隔板隔开。在将它们放到一起接触前必须要让它们先能相互看到,有所认识了解。这一点很重要,可以最大程度地减少它们接触后斗架,相互造成严重伤害的风险。
- 有些斗鱼饲养者先把公的斗鱼放进一个没有隔断的鱼缸,然后将母斗鱼装进透明塑料杯中,将透明塑料杯浸入公鱼鱼缸的水中,以这种方式让它们见面,但又不会有身体接触。用这种方式让它们见面时,
母鱼
一天只能和公鱼见面几个小时,因为母鱼在狭小的容器内,会很不自在。它们的见面时间大概可以持续几天。
- 有些斗鱼饲养者会再分开
公母斗鱼
几天的时间,然后再让它们见面几天。完成了这一过程后,进入到下一步。
6
观察它们的表现。观察公母斗鱼,看看它们是否对对方感兴趣。如果感兴趣,公鱼会在母鱼周围游动,展示鱼鳍,炫耀般地显摆。母鱼会展示她身体上的竖直线条,头会向下倾斜一个角度显示顺服的一个样子。有一些进攻性的姿态是正常的,但是如果隔着挡板它们还很冲动,想相互进攻,那么就不要把它们放到一起。继续保持分开状态,稍后再做尝试,或者换一对斗鱼试试。
部分3
繁育斗鱼
1
去掉分隔板。一旦公鱼准备繁殖,它会建一个大的泡泡巢。一旦建好泡泡巢,关闭水循环装置,把母鱼放进鱼缸,但是一定要盯紧这对鱼。公鱼可能会欺负她一些,咬鱼鳍和追逐她。这种状况还算好,只要母鱼没有处于生命危险之中。此求爱可能持续几个小时甚至数天。确保有足够的隐藏处为母鱼摆脱欺凌提供场地,并定期检查这对鱼,防止严重受伤。
2
顺其自然。公鱼最后会和母鱼在他的泡巢下亲昵。它们可能需要交配几次,才能产生卵子。然后,母鱼将进入一个“僵尸般的”状态,白色的卵从她小小的白色产卵器生落到缸底。公鱼会游下来,把卵挖出来,把它们一个一个入巢。一些母鱼在恢复体力后也会帮忙,但是有些母鱼会吃卵,所以仔细观看,如果母鱼吃卵,就把它移出鱼缸。它们可能会交配多次,但最终母鱼将停止产卵。
3
将母鱼移出鱼缸。母鱼产完卵后,公鱼会再次欺负她,并且母鱼还会隐藏起来。轻轻地舀出母鱼并把她放到她自己的鱼缸。给她的鱼缸加一点抗霉菌(Maroxy),帮助她治愈鳍。在育种鱼缸也加一点抗霉菌(Maroxy)是一个不错的主意,可以防止真菌杀卵。
4
只把公鱼留在育种缸里,直到鱼苗可以游来游去。这将是在大约孵化三天后鱼苗才可以游来游去。一些饲养者在这段时间将不喂公鱼。这应该能减少公鱼吃鱼卵和鱼苗的风险。其他养殖者在第二天会喂他少量食物。如果你选择喂他,而他不马上吃食,请不要惊慌,继续提供食物,并用吸管轻轻取出没有吃的鱼食。不要开过滤器,以防止打扰到鱼苗。但是开着鱼缸灯,白天黑夜都开着。
部分4
照顾鱼苗
1
等待鱼苗孵化。当鱼苗最初孵化出来,他们将挂起在泡巢上,公鱼会把落下来的卵扔掉。几天后,鱼苗将开始游动,水平着游泳,开始离开泡巢。在此之前,鱼苗消耗的是自己鱼卵里剩下的蛋黄,还不能自己吃东西。
2
把公鱼从鱼缸中移走,注意要非常小心,不要捞走任何鱼苗。可以返回到正常的例行和喂养时间表来饲养公鱼。如果他仍然留有求爱后留下的伤痕,添加一些抗霉菌( Maroxy) 帮助他治好。
3
喂养鱼苗。在移出了公鱼之后,马上喂鱼苗少量的活的微型鱼虫。饲料一天喂两次,并密切观察,看看多少被吃掉了。如果到了喂食的时间,仍然有活的微型鱼虫,您可以跳过不喂食,因为鱼苗仍然有食物。如果你看到有很多死了的微型鱼虫,说明鱼苗营养过剩,所以削减部分鱼食。喂给鱼苗吃的鱼食必须是非常小的活的鱼食。
-
滴虫
:这是鱼苗第一周要吃的鱼食;
- 微型鱼虫:你需要购买一份发酵剂培养物,然后就不用再买了。这种鱼食适合 3-40 天大小的鱼苗 ;
- 养小的腮足虫:这些很容易就可以孵化,最容易控制多少要养活。但是喂食过量的话会导致鱼鳔紊乱;
4
给鱼苗成长的时间。鱼缸保暖在摄氏26.5度,盖住鱼缸,以防寒冷和水分蒸发。投喂越来越多的鱼食。当鱼苗在育种鱼缸长大后,他们将需要搬到更大的鱼缸。并不是所有的鱼苗都能活过前几周。但是如果你每天都能看到大量死去的鱼苗,那很可能是在水温、化学品等方面有问题,对此作检查,并考虑治疗感染的可能性。
- 当鱼苗一周大小,可以使用过滤器,但限制水阀流量,让水流几乎察觉不到。
- 当鱼苗两周大小,可以开始执行每隔几天换少量(10%)的水,以保持清洁和没有死的鱼食。可以使用非常柔缓的水族缸虹吸管或手捏球吸管,防止鱼苗受伤。非常缓慢地添加干净的水。你可以开始在夜间关闭鱼缸的灯。
- 接下来几星期,逐步增加过滤器的流量。仔细照看好鱼苗,确保他们已强大到足以抵抗逆流的水流。
5
将鱼苗放入生长鱼缸。在鱼苗两个星期大的时候,你应该将它们移换到至少70升水的鱼缸。确保温度和鱼缸中的水和鱼苗孵化缸中所习惯的相同。鱼苗是很娇嫩的 — 一个闪失就可能要了它们的命。如果你一开始使用的是一半加满水的20升或40升鱼缸,那么在鱼苗4-5周大小的时候,可以给鱼缸加满水。
部分5
养育鱼苗到成年
1
给鱼苗戒除掉活食。鱼苗一个月大小的时候你可以逐渐开始喂食冻的鱼食,以及片状或颗粒的鱼食。请确保鱼食被粉碎到足够小,可以被鱼苗的小嘴吃进。从少量开始,并慢慢戒掉活的鱼食。记住一定要清理出没有吃完的鱼食。
2
当公的鱼苗开始打架的时候(大概5-8周的年龄),是从鱼缸中把它们分开的时候了。将它们分开放进不同的鱼缸,但是鱼缸之间彼此靠近,否则它们会因为突然被隔绝而郁闷。
- 不打架的公鱼可以留下来陪伴母鱼,直到他们变得咄咄逼人。
- 一些公鱼在被分开的前一两天内会拒绝吃食;请尝试喂他们活的食物,以刺激他们的胃口。
- 继续分离出所有表现出进攻性的公鱼。在接下来的几天和几周时间里,你可以开始用不透明的挡板隔离开公鱼,因为他们看到别的公鱼就会发火,并试图攻击相邻鱼缸的公鱼。
3
决定您小鱼的未来。如果你打算销售你的鱼苗,要开始接触潜在的买家。大多数鱼苗在 10-11 个星期,就可以显示他们成年鱼的特点,就可以开始选择最佳鱼繁殖后代或拍摄照片,然后发送给买家。如果你想创建一个遗传品种,只用选择最佳的几条鱼继续繁殖,把其他的鱼卖掉或是送给别人,否则你的斗鱼会多得照顾不过来。
4
年轻斗鱼的性别鉴定。这需要时间和经验;即使有经验的饲养者有时也会搞错:把两条公鱼放到了一起。
- 公鱼有较长的鳍,然而年轻公斗鱼的鳍仍然较短。
- 公鱼之间会非常火爆。母鱼通常不会很火爆,但母鱼也可能会和公鱼一样具有攻击性。
- 母鱼有产卵点,位于她的肚子上;这是在产卵期间鱼卵排出的地方。
- 公鱼爱吹泡巢;如果你看到斗鱼在吹泡巢,那他是一条公鱼。
小提示
- 一些饲养者提供方便公鱼打造泡巢的东西,如发泡胶杯、 小块生菜或其他浮动东西。
- 尝试养殖什么之前, 请确保你已经为
幼鱼
决定了去向。斗鱼在一个配对期可以产生超过 500 条鱼苗,所以一定要让他们有去处。
- 有些配对没有成功,因为斗鱼互相不喜欢,或者其中一条斗鱼有生理缺陷。不要灰心,再试一次与不同的鱼配对。
- 40升的鱼缸可以有4个分隔板,来分隔单独生长的公斗鱼。因为还可以使用加热器和过滤器,所以比个别的小鱼缸的生长环境更优越。
- 一定要使用腮足虫网来网捞斗鱼。标准网会卡住和伤害斗鱼娇嫩的鳍。
- 在繁育前做很多研究工作。在互联网上有许多好的资源,或者你也可以向当地育种专家或
水族馆
专家咨询。
- 记住总是要从鱼苗鱼缸捞出吃剩的鱼食,否则它们会分解,导致细菌感染。
- 绝对不要给小的鱼苗喂食片状或颗粒的食物,这些鱼食太大,而且鱼苗也不吃死的东西。这样的话小鱼苗要么饿死,要么被吃剩的食物产生的细菌感染而死。
- 一些饲养者更喜欢用更小的7升的鱼缸来育种。虽然这可以加快育种进程(母鱼躲避的空间较少),但是也意味着在将鱼苗移到较大的鱼缸时,可能会很危险,如果不是谨慎执行的话,会导致部分或全部鱼苗死亡。
- 高质量鱼苗来自高质量的种鱼。如果您计划销售您的鱼苗,值得把钱投资在良好的成鱼繁殖对上。
- 如果您创建了一个独特的、 稳定的遗传特征,为了便于将来识别您应该给这个特征命名。
- 请确保过滤器不会吸走水中的鱼苗,他们太娇小,抵抗不了大的水流。
- 你可以用公的斗鱼来配对,但他们不会繁殖只是相互炫耀,除非再放一只母的斗鱼进来。
- 如果鱼出生时有严重畸形,您可能必须做出艰难决定。如果这些畸型鱼很痛苦,可以考虑将它们安乐死,这是一个人性化的选择。不要试图去培育畸型(比如弯曲的脊椎或畸形的鱼鳍)的斗鱼鱼种。
警告
- 负责任的饲养者会做仔细的基因与性状的研究,并确保他们繁殖的鱼苗有个好的去处。不作未雨绸缪,育种可能导致整个产卵期得到的都是不良鱼苗。
- 斗鱼育种需要投入大量时间、 精力和金钱。它不是一种可以掉以轻心的嗜好。
- 从你找成年斗鱼配种,直到斗鱼鱼苗长成成鱼,中间有任何事情不对,你都不会得到预想的结果。在你熟悉老练起来之前,做好几次失败的心理准备。
- 在对鱼缸使用化学品和药物治疗时,一定要非常小心。如果过度使用,本来小剂量可以拯救生命的药物会杀死鱼苗。总是仔细阅读使用说明,绝对不要超出使用建议量。
你需要准备
- 2 个成鱼鱼缸
- 40升的带盖和灯的育种鱼缸
- 鱼缸分隔板或者透明塑料杯
- 潜水电加热器,能够维持摄氏26.5 度
- 小水的过滤器
- 小水的水族缸吸管
- 捏球吸管
- 隐藏的地方(植物、pvc 管道等)
- 腮足虫网
- Maroxy、 Bettafix、 Ampicilin或其他治疗药物
- 活的成鱼鱼食(血吸虫或腮足虫)
- 鱼苗鱼食培养基(微型鱼虫或滴虫)
- 冷冻、 片状或颗粒鱼食
- 为小公鱼准备的鱼缸
- 大型幼鱼鱼缸(110升 – 180升)
参考
DouyuTV | DG vs BH (game 1-LowerBracket)
Yaro Studio
Douyu TV Dota 2 Cup | Brave Heart vs Dream Gaming (game 1lower bracket)
Xem thêm clip giải DouyuTV D2L tại: https://www.youtube.com/playlist?list=PLYsCYoGLKohgDZG6t1DdYTO5KUOUSzt5U
Trang chủ: yaro.vn
Stream riêng: yaro.vn/stream.php
Kênh talkTV: talktv.vn/lzstudio
นอกจากการดูบทความนี้แล้ว คุณยังสามารถดูข้อมูลที่เป็นประโยชน์อื่นๆ อีกมากมายที่เราให้ไว้ที่นี่: ดูความรู้เพิ่มเติมที่นี่
DouyuTV | BHeart vs TB (game 1)
Yaro Studio
Douyu TV Dota 2 League | Brave Heart vs Terror Blade (game 1)
Xem thêm clip giải DouyuTV D2L tại: https://www.youtube.com/playlist?list=PLYsCYoGLKohgDZG6t1DdYTO5KUOUSzt5U
Trang chủ: yaro.vn
Stream riêng: yaro.vn/stream.php
Kênh talkTV: talktv.vn/lzstudio
DouyuTV | DG vs BH (game 2)
Yaro Studio
Douyu TV Dota 2 Cup | Dream Gaming vs Brave Heart (game 2)
Xem thêm clip giải DouyuTV D2L tại: https://www.youtube.com/playlist?list=PLYsCYoGLKohgDZG6t1DdYTO5KUOUSzt5U
Trang chủ: yaro.vn
Stream riêng: yaro.vn/stream.php
Kênh talkTV: talktv.vn/lzstudio
DouyuTV | NBM vs VGP (game 1)
Yaro Studio
Douyu TV Dota 2 League | NewBee Miracle vs Vici Gaming Potential (game 1)
Xem thêm clip giải DouyuTV D2L tại: https://www.youtube.com/playlist?list=PLYsCYoGLKohgDZG6t1DdYTO5KUOUSzt5U
Trang chủ: yaro.vn
Stream riêng: yaro.vn/stream.php
Kênh talkTV: talktv.vn/lzstudio
PUBG DouYuTv-1621586 Hack
นอกจากการดูบทความนี้แล้ว คุณยังสามารถดูข้อมูลที่เป็นประโยชน์อื่นๆ อีกมากมายที่เราให้ไว้ที่นี่: ดูวิธีอื่นๆWiki
ขอบคุณที่รับชมกระทู้ครับ douyutv